53 lines
2.0 KiB
SQL
53 lines
2.0 KiB
SQL
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||
CREATE PROCEDURE src05.inst_merge_laundering(@target_table VARCHAR(64))
|
||
SQL SECURITY INVOKER
|
||
BEGIN
|
||
-- スキーマ名
|
||
DECLARE schema_name VARCHAR(50) DEFAULT (SELECT DATABASE());
|
||
-- プロシージャ名
|
||
DECLARE procedure_name VARCHAR(100) DEFAULT 'inst_merge_laundering';
|
||
-- プロシージャの引数
|
||
DECLARE procedure_args JSON DEFAULT JSON_OBJECT();
|
||
|
||
-- 例外処理
|
||
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||
BEGIN
|
||
GET DIAGNOSTICS CONDITION 1
|
||
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||
call medaca_common.put_error_log(schema_name, procedure_name, procedure_args,
|
||
'inst_merge_launderingでエラーが発生', @error_state, @error_msg);
|
||
SIGNAL SQLSTATE '45000'
|
||
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
|
||
END;
|
||
|
||
SET @error_state = NULL, @error_msg = NULL;
|
||
|
||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||
'【洗替】4:メルク施設コードの洗替_B① 開始');
|
||
|
||
UPDATE (
|
||
SELECT
|
||
dcf_dsf_inst_cd,
|
||
dup_opp_cd,
|
||
form_inst_name_kanji,
|
||
form_inst_name_kana,
|
||
inst_addr,
|
||
prefc_cd
|
||
FROM
|
||
internal05.inst_merge_t
|
||
) AS imt,
|
||
src05.@target_table AS tt
|
||
SET
|
||
tt.inst_cd = imt.dup_opp_cd,
|
||
tt.inst_name = imt.form_inst_name_kanji,
|
||
tt.inst_name_kana = imt.form_inst_name_kana,
|
||
tt.address = imt.inst_addr,
|
||
tt.prefc_cd = imt.prefc_cd
|
||
WHERE
|
||
tt.inst_cd = imt.dcf_dsf_inst_cd
|
||
;
|
||
|
||
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||
'【洗替】4:メルク施設コードの洗替_B① 終了');
|
||
|