diff --git a/rds_mysql/stored_procedure/inst_merge_t_create.sql b/rds_mysql/stored_procedure/inst_merge_t_create.sql new file mode 100644 index 00000000..4f7e1b44 --- /dev/null +++ b/rds_mysql/stored_procedure/inst_merge_t_create.sql @@ -0,0 +1,48 @@ +-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する +CREATE PROCEDURE src05.inst_merge_t_create() +SQL SECURITY INVOKER +BEGIN + -- 例外処理 + -- エラーが発生した場合に一時テーブルの削除を実施 + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT; + ROLLBACK; + SIGNAL SQLSTATE '45000' + SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg; + END; + + SET @error_state = NULL, @error_msg = NULL; + START TRANSACTION; + + TRUNCATE TABLE internal05.inst_merge_t; + + INSERT INTO + internal05.inst_merge_t ( + dcf_dsf_inst_cd, + dup_opp_cd, + form_inst_name_kanji, + form_inst_name_kana, + inst_addr, + prefc_cd + ) + SELECT + di.dcf_inst_cd, + di.dcf_inst_cd_new, + ci.form_inst_name_kanji, + ci.form_inst_name_kana, + ci.inst_addr, + ci.prefc_cd + FROM + dcf_inst_merge di + LEFT OUTER JOIN com_inst ci + ON di.dcf_inst_cd_new = ci.dcf_dsf_inst_cd + WHERE + ci.delete_flg = '0' + AND STR_TO_DATE(di.tekiyo_month, '%Y%m') <= (SELECT STR_TO_DATE(syor_date, '%Y%m%d') FROM hdke_tbl) + AND di.muko_flg = '0' + AND di.enabled_flg = 'Y'; + + COMMIT; +END diff --git a/rds_mysql/stored_procedure/v_inst_merge_t_create.sql b/rds_mysql/stored_procedure/v_inst_merge_t_create.sql new file mode 100644 index 00000000..bbc05090 --- /dev/null +++ b/rds_mysql/stored_procedure/v_inst_merge_t_create.sql @@ -0,0 +1,65 @@ +-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する +CREATE PROCEDURE src05.v_inst_merge_t_create() +SQL SECURITY INVOKER +BEGIN + -- 例外処理 + -- エラーが発生した場合に一時テーブルの削除を実施 + DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT; + ROLLBACK; + SIGNAL SQLSTATE '45000' + SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg; + END; + + SET @error_state = NULL, @error_msg = NULL; + START TRANSACTION; + + TRUNCATE TABLE internal05.v_inst_merge_t; + + INSERT INTO + internal05.v_inst_merge_t ( + v_inst_cd, + v_inst_cd_merge, + fcl_name, + fcl_kn_name, + fmt_addr, + prft_cd + ) + SELECT + vv.v_inst_cd, + vv.v_inst_cd_merg, + fv.fcl_name, + fv.fcl_kn_name, + fv.fmt_addr, + fv.prft_cd + FROM + src05.vop_hco_merge_v vv, + src05.fcl_mst_v fv + INNER JOIN ( + SELECT + v_inst_cd, + MAX(sub_num) AS sno + FROM + src05.fcl_mst_v + GROUP BY + v_inst_cd + ) fmv1 + ON fv.v_inst_cd = fmv1.v_inst_cd + AND fv.sub_num = fmv1.sno + WHERE + vv.v_inst_cd_merg = fv.v_inst_cd + AND STR_TO_DATE(vv.apply_dt, '%Y-%m-%d') <= ( + SELECT + STR_TO_DATE(syor_date, '%Y%m%d') + FROM + src05.hdke_tbl + ) + AND ((fcl_type IN ('A1','A0')) OR fcl_type BETWEEN '20' AND '29') + AND fv.rec_sts_kbn != '9' + ORDER BY + STR_TO_DATE(vv.apply_dt, '%Y-%m-%d') ASC; + + COMMIT; +END