Merge pull request #303 feature-feature-NEWDWH2021-1298-fix into develop-4-crm-medical

This commit is contained in:
下田雅人 2023-10-24 17:58:20 +09:00
commit f4bcfb9c8c

View File

@ -1,6 +1,6 @@
-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する -- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する
-- $$から始まる文字は後からREPLACEする文字を示す独自ルール -- $$から始まる文字は後からREPLACEする文字を示す独自ルール
CREATE FUNCTION internal02.`get_distribution_to_schema`(target_table VARCHAR(64), target_column VARCHAR(64), target_column_value VARCHAR(64)) CREATE FUNCTION internal02.`get_distribution_to_schema`(target_table VARCHAR(64), target_column VARCHAR(64), target_column_value VARCHAR(100))
RETURNS VARCHAR(20) RETURNS VARCHAR(20)
DETERMINISTIC DETERMINISTIC
@ -10,10 +10,10 @@ BEGIN
-- other振分先蓄積スキーマ -- other振分先蓄積スキーマ
DECLARE distribution_schema_other VARCHAR(20) DEFAULT NULL; DECLARE distribution_schema_other VARCHAR(20) DEFAULT NULL;
-- 振分判断項目値 -- 振分判断項目値
DECLARE value_from_column_value VARCHAR(64) DEFAULT NULL; DECLARE value_from_column_value VARCHAR(100) DEFAULT NULL;
-- 振分先蓄積スキーマ -- 振分先蓄積スキーマ
DECLARE value_to_schema VARCHAR(20) DEFAULT NULL; DECLARE value_to_schema VARCHAR(20) DEFAULT NULL;
-- カーソルがデータセットの最後に達したか判定するための変数 -- カーソルがデータセットの最後に達したか判定するための変数
DECLARE done INT DEFAULT FALSE; DECLARE done INT DEFAULT FALSE;
@ -23,15 +23,15 @@ BEGIN
FROM internal02.`crm_data_distribution_settings` FROM internal02.`crm_data_distribution_settings`
WHERE `table_id` = target_table WHERE `table_id` = target_table
AND `from_column_id` = target_column; AND `from_column_id` = target_column;
-- カーソルがデータセットをフェッチしきった時の動作を制御 -- カーソルがデータセットをフェッチしきった時の動作を制御
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cursor_crm_data_distribution_settings; OPEN cursor_crm_data_distribution_settings;
read_loop: LOOP read_loop: LOOP
FETCH cursor_crm_data_distribution_settings INTO value_from_column_value, value_to_schema; FETCH cursor_crm_data_distribution_settings INTO value_from_column_value, value_to_schema;
-- カーソルの読み出しが完了していればループを抜ける -- カーソルの読み出しが完了していればループを抜ける
IF done THEN IF done THEN
LEAVE read_loop; LEAVE read_loop;
@ -40,7 +40,7 @@ BEGIN
IF value_from_column_value = target_column_value THEN IF value_from_column_value = target_column_value THEN
SET ret = value_to_schema; SET ret = value_to_schema;
END IF; END IF;
-- カーソルから読み出した行が'other'かを判断 -- カーソルから読み出した行が'other'かを判断
IF value_from_column_value = 'other' THEN IF value_from_column_value = 'other' THEN
SET distribution_schema_other = value_to_schema; SET distribution_schema_other = value_to_schema;
@ -48,7 +48,7 @@ BEGIN
END LOOP; END LOOP;
CLOSE cursor_crm_data_distribution_settings; CLOSE cursor_crm_data_distribution_settings;
-- 例外処理 -- 例外処理
IF distribution_schema_other IS NULL THEN IF distribution_schema_other IS NULL THEN
SET @error_msg = 'データ振分設定テーブルにotherの設定がされていません。テーブルID: $$target_table$$, 振分判断項目ID: $$target_column$$'; SET @error_msg = 'データ振分設定テーブルにotherの設定がされていません。テーブルID: $$target_table$$, 振分判断項目ID: $$target_column$$';