65 lines
2.6 KiB
SQL
65 lines
2.6 KiB
SQL
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
||
CREATE PROCEDURE src05.inst_merge_laundering(target_table VARCHAR(255))
|
||
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('target_table', target_table);
|
||
|
||
-- 例外処理
|
||
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);
|
||
SET @error_msg = (
|
||
CASE
|
||
WHEN LENGTH(@error_msg) > 128 THEN CONCAT(SUBSTRING(@error_msg, 1, 125), '...')
|
||
ELSE @error_msg
|
||
END
|
||
);
|
||
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① 開始');
|
||
|
||
SET @update_institution = "
|
||
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,
|
||
$$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.pref_cd = imt.prefc_cd,
|
||
tt.dwh_upd_dt = SYSDATE()
|
||
WHERE
|
||
tt.inst_cd = imt.dcf_dsf_inst_cd
|
||
AND tt.inst_clas_cd = '1'
|
||
";
|
||
SET @update_institution = REPLACE(@update_institution, "$$target_table$$", target_table);
|
||
PREPARE update_institution_stmt from @update_institution;
|
||
EXECUTE update_institution_stmt;
|
||
|
||
CALL medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
||
'【洗替】4:メルク施設コードの洗替_B① 終了');
|
||
|
||
END |