fix: target_column_valueはVARCHAR(100)のままでいい

This commit is contained in:
shimoda.m@nds-tyo.co.jp 2023-10-24 17:55:09 +09:00
parent ece493b0d6
commit 67732d23b5

View File

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