diff --git a/rds_mysql/stored_procedure/internal02/get_distribution_to_schema.sql b/rds_mysql/stored_procedure/internal02/get_distribution_to_schema.sql index 535f1597..3e4ee7f8 100644 --- a/rds_mysql/stored_procedure/internal02/get_distribution_to_schema.sql +++ b/rds_mysql/stored_procedure/internal02/get_distribution_to_schema.sql @@ -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$$';