コール2キーメッセージストアドプロシージャの最初プッシュ
This commit is contained in:
parent
dd74eb5d80
commit
de2955a24f
@ -0,0 +1,105 @@
|
|||||||
|
CREATE PROCEDURE `internal02`.`crm_distribution_Call2_Key_Message_vod__c`()
|
||||||
|
SQL SECURITY INVOKER
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- 振り分けスキーマ
|
||||||
|
DECLARE distribution_schema VARCHAR(64);
|
||||||
|
-- 振り分けカラム
|
||||||
|
DECLARE target_column_value VARCHAR(64);
|
||||||
|
-- 振り分け先テーブルID
|
||||||
|
DECLARE temp_table_id VARCHAR(18);
|
||||||
|
-- カーソルフェッチステータス
|
||||||
|
DECLARE fetch_done BOOLEAN DEFAULT FALSE;
|
||||||
|
|
||||||
|
-- カーソル設定
|
||||||
|
DECLARE table_cursor CURSOR FOR SELECT Id, medaca_parent_record_type_id FROM internal02.crm_Call2_Key_Message_vod__c;
|
||||||
|
DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetch_done = TRUE;
|
||||||
|
|
||||||
|
-- エラー処理
|
||||||
|
DECLARE EXIT HANDLER FOR SQLEXCEPTION
|
||||||
|
BEGIN
|
||||||
|
GET DIAGNOSTICS CONDITION 1
|
||||||
|
@error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT;
|
||||||
|
ROLLBACK;
|
||||||
|
SET @error_msg = (
|
||||||
|
CASE
|
||||||
|
WHEN LENGTH(@error_msg) > 128 THEN CONCAT(SUBSTRING(@error_msg, 1, 125), '...')
|
||||||
|
ELSE @error_msg
|
||||||
|
END
|
||||||
|
);
|
||||||
|
SIGNAL SQLSTATE '45000'
|
||||||
|
SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg;
|
||||||
|
END;
|
||||||
|
|
||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
-- UPSERT STATEMENT設定
|
||||||
|
SET @upsert_statement_base =
|
||||||
|
'INSERT INTO $$distribution_schema$$.crm_Call2_Key_Message_vod__c
|
||||||
|
(Id, IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp,
|
||||||
|
MayEdit, IsLocked, Account_vod__c, Call2_vod__c, Reaction_vod__c, Product_vod__c, Key_Message_vod__c,
|
||||||
|
Mobile_ID_vod__c, Contact_vod__c, Call_Date_vod__c, User_vod__c, Category_vod__c, Vehicle_vod__c,
|
||||||
|
Is_Parent_Call_vod__c, Override_Lock_vod__c, CLM_ID_vod__c, Slide_Version_vod__c, Duration_vod__c,
|
||||||
|
Presentation_ID_vod__c, Start_Time_vod__c, Attendee_Type_vod__c, Entity_Reference_Id_vod__c, Segment_vod__c,
|
||||||
|
Display_Order_vod__c, Clm_Presentation_Name_vod__c, Clm_Presentation_Version_vod__c, Clm_Presentation_vod__c,
|
||||||
|
file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date)
|
||||||
|
SELECT
|
||||||
|
Id, IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp,
|
||||||
|
MayEdit, IsLocked, Account_vod__c, Call2_vod__c, Reaction_vod__c, Product_vod__c, Key_Message_vod__c,
|
||||||
|
Mobile_ID_vod__c, Contact_vod__c, Call_Date_vod__c, User_vod__c, Category_vod__c, Vehicle_vod__c,
|
||||||
|
Is_Parent_Call_vod__c, Override_Lock_vod__c, CLM_ID_vod__c, Slide_Version_vod__c, Duration_vod__c,
|
||||||
|
Presentation_ID_vod__c, Start_Time_vod__c, Attendee_Type_vod__c, Entity_Reference_Id_vod__c, Segment_vod__c,
|
||||||
|
Display_Order_vod__c, Clm_Presentation_Name_vod__c, Clm_Presentation_Version_vod__c, Clm_Presentation_vod__c,
|
||||||
|
file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date
|
||||||
|
FROM
|
||||||
|
internal02.crm_Call2_Key_Message_vod__c AS internaltb
|
||||||
|
WHERE
|
||||||
|
internaltb.Id = ?
|
||||||
|
ON DUPLICATE KEY UPDATE
|
||||||
|
IsDeleted = internaltb.IsDeleted, Name = internaltb.Name, CreatedDate = internaltb.CreatedDate,
|
||||||
|
CreatedById = internaltb.CreatedById, LastModifiedDate = internaltb.LastModifiedDate,
|
||||||
|
LastModifiedById = internaltb.LastModifiedById, SystemModstamp = internaltb.SystemModstamp,
|
||||||
|
MayEdit = internaltb.MayEdit, IsLocked = internaltb.IsLocked, Account_vod__c = internaltb.Account_vod__c,
|
||||||
|
Call2_vod__c = internaltb.Call2_vod__c, Reaction_vod__c = internaltb.Reaction_vod__c,
|
||||||
|
Product_vod__c = internaltb.Product_vod__c, Key_Message_vod__c = internaltb.Key_Message_vod__c,
|
||||||
|
Mobile_ID_vod__c = internaltb.Mobile_ID_vod__c, Contact_vod__c = internaltb.Contact_vod__c,
|
||||||
|
Call_Date_vod__c = internaltb.Call_Date_vod__c, User_vod__c = internaltb.User_vod__c,
|
||||||
|
Category_vod__c = internaltb.Category_vod__c, Vehicle_vod__c = internaltb.Vehicle_vod__c,
|
||||||
|
Is_Parent_Call_vod__c = internaltb.Is_Parent_Call_vod__c, Override_Lock_vod__c = internaltb.Override_Lock_vod__c,
|
||||||
|
CLM_ID_vod__c = internaltb.CLM_ID_vod__c, Slide_Version_vod__c = internaltb.Slide_Version_vod__c,
|
||||||
|
Duration_vod__c = internaltb.Duration_vod__c, Presentation_ID_vod__c = internaltb.Presentation_ID_vod__c,
|
||||||
|
Start_Time_vod__c = internaltb.Start_Time_vod__c, Attendee_Type_vod__c = internaltb.Attendee_Type_vod__c,
|
||||||
|
Entity_Reference_Id_vod__c = internaltb.Entity_Reference_Id_vod__c, Segment_vod__c = internaltb.Segment_vod__c,
|
||||||
|
Display_Order_vod__c = internaltb.Display_Order_vod__c, Clm_Presentation_Name_vod__c = internaltb.Clm_Presentation_Name_vod__c,
|
||||||
|
Clm_Presentation_Version_vod__c = internaltb.Clm_Presentation_Version_vod__c,
|
||||||
|
Clm_Presentation_vod__c = internaltb.Clm_Presentation_vod__c, file_name = internaltb.file_name,
|
||||||
|
file_row_cnt = internaltb.file_row_cnt, delete_flg = internaltb.delete_flg, ins_user = internaltb.ins_user,
|
||||||
|
ins_date = internaltb.ins_date, upd_user = CURRENT_USER(), upd_date = CURRENT_TIMESTAMP();';
|
||||||
|
|
||||||
|
OPEN table_cursor;
|
||||||
|
|
||||||
|
-- ループ
|
||||||
|
TableCursorLoop: LOOP
|
||||||
|
-- スキーマ取得
|
||||||
|
FETCH table_cursor INTO temp_table_id, target_column_value;
|
||||||
|
|
||||||
|
-- 終了条件ループ抜き
|
||||||
|
IF fetch_done THEN
|
||||||
|
LEAVE TableCursorLoop;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
SET @distribution_schema = get_distribution_to_schema('crm_Call2_Key_Message_vod__c', 'medaca_parent_record_type_id', target_column_value);
|
||||||
|
SET @temp_table_id = temp_table_id;
|
||||||
|
|
||||||
|
SET @upsert_statement = REPLACE(@upsert_statement_base, "$$distribution_schema$$", @distribution_schema);
|
||||||
|
|
||||||
|
-- UPSERT実行
|
||||||
|
PREPARE stmt FROM @upsert_statement;
|
||||||
|
EXECUTE stmt USING @temp_table_id;
|
||||||
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
|
END LOOP;
|
||||||
|
CLOSE table_cursor;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
END
|
||||||
Loading…
x
Reference in New Issue
Block a user