37 lines
1.6 KiB
SQL
37 lines
1.6 KiB
SQL
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
|
|
CREATE PROCEDURE src05.sales_lau_delete(@target_table VARCHAR(64), @laundering_period_year INT)
|
|
SQL SECURITY INVOKER
|
|
BEGIN
|
|
-- スキーマ名
|
|
DECLARE schema_name VARCHAR(50) DEFAULT (SELECT DATABASE());
|
|
-- プロシージャ名
|
|
DECLARE procedure_name VARCHAR(100) DEFAULT 'sales_lau_delete';
|
|
-- プロシージャの引数
|
|
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,
|
|
'sales_lau_deleteでエラーが発生', @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,
|
|
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 開始');
|
|
|
|
DELETE FROM
|
|
src05.@target_table
|
|
WHERE
|
|
kjyo_ym < DATE_FORMAT((src05.get_syor_date() - INTERVAL @laundering_period_year YEAR), '%Y%m')
|
|
;
|
|
|
|
call medaca_common.put_info_log(schema_name, procedure_name, procedure_args,
|
|
'卸販売実績テーブル(洗替後)過去5年以前のデータ削除① 終了');
|
|
|
|
END |