From 685970197722ca632203131fbc019bd35b8ec748 Mon Sep 17 00:00:00 2001 From: Nik Afiq Date: Thu, 19 Oct 2023 16:06:41 +0900 Subject: [PATCH] =?UTF-8?q?=E9=80=94=E4=B8=AD=E3=83=97=E3=83=83=E3=82=B7?= =?UTF-8?q?=E3=83=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rm_distribution_Product_Metrics_vod__c.sql | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/rds_mysql/stored_procedure/internal02/crm_distribution_Product_Metrics_vod__c.sql b/rds_mysql/stored_procedure/internal02/crm_distribution_Product_Metrics_vod__c.sql index fce4c979..e2d8d77a 100644 --- a/rds_mysql/stored_procedure/internal02/crm_distribution_Product_Metrics_vod__c.sql +++ b/rds_mysql/stored_procedure/internal02/crm_distribution_Product_Metrics_vod__c.sql @@ -1,39 +1,46 @@ + CREATE PROCEDURE `crm_distribution_Product_Metrics_vod__c` (target_table VARCHAR(100), target_column VARCHAR(100)) BEGIN +-- エラー処理 +DECLARE EXIT HANDLER FOR SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT; + ROLLBACK; + SIGNAL SQLSTATE '45000' + SET MYSQL_ERRNO = @error_state, MESSAGE_TEXT = @error_msg; + END; + -- 変数宣言 DECLARE distribution_schema VARCHAR(100); -DECLARE target_table VARCHAR(100) DEFAULT 'crm_Product_Metrics_vod__c'; -DECLARE target_column VARCHAR(100); DECLARE target_column_value VARCHAR(100); DECLARE TempTableId VARCHAR(18); -- カーサー設定 -DECLARE ControlTable CURSOR FOR -SELECT * FROM internal02.crm_Product_Metrics_vod__c; +SELECT Id, target_column INTO @ControlTable FROM internal02.crm_Product_Metrics_vod__c; -- ループ -ControlTableLoop: WHILE EXISTs (SELECT * FROM ControlTable) -DO +ControlTableLoop: WHILE EXISTS (SELECT * FROM ControlTable) + DO --- スキーマ取得 -SELECT Id FROM ControlTable ORDER BY Id ASC LIMIT 1 INTO TempTableId; -SELECT medaca_parent_msj_product_classification__c FROM internal02.crm_Product_Metrics_vod__c WHERE Id=TempTableId INTO target_column_value; -SET distribution_schema = get_distribution_to_schema(target_table, target_column, target_column_value); + -- スキーマ取得 + SELECT Id, target_column FROM ControlTable ORDER BY Id ASC LIMIT 1 INTO TempTableId, target_column_value; + SET distribution_schema = get_distribution_to_schema(target_table, target_column, target_column_value); --- 例外処理、ループ抜け -IF (distribution_schema != src02m OR distribution_schema != src02c) THEN -LEAVE ControlTableLoop; -END IF; + -- UPSERT文 + INSERT INTO distribution_schema.crm_Product_Metrics_vod__c (Id, IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, MayEdit, IsLocked, LastViewedDate, LastReferencedDate, Account_vod__c, Awareness__c, Selling_Stage__c, Formulary_Status__c, Movement__c, Products_vod__c, Segment__c, X12_mo_trx_chg__c, Speaker_Skills__c, Investigator_Readiness__c, Engagements__c, Mobile_ID_vod__c, External_ID_vod__c, MSJ_Patient__c, Detail_Group_vod__c, MSJ_EB_1st_Line_Liver_Meta__c, MSJ_EB_1st_Line_Multi_Meta__c, MSJ_EB_2nd_Line_Mono__c, MSJ_EB_2nd_Line_Combination__c, MSJ_EB_3rd_Line_Mono__c, MSJ_EB_3rd_Line_Combination__c, EMDS_Ability__c, EMDS_Brand_Loyalty__c, EMDS_Decision_Maker__c, EMDS_Early_Tech_Adopter__c, EMDS_Influence__c, EMDS_Main_Driver__c, EMDS_Priority__c, EMDS_Willingness__c, MSJ_KTL_Type__c, MSJ_KTL_Tier__c, MSJ_Publications__c, MSJ_Clinical_Trials__c, MSJ_Speaker_for_Medical_Events__c, MSJ_Advisor_to_Medical_Affairs__c, MSJ_Guidelines_Treatment_Standards__c, MSJ_Therapeutic_Area_Expertise__c, MSJ_MAP_GAP__c, MSJ_Associations__c, MSJ_Tier_Score__c, medaca_parent_msj_product_classification__c, start_datetime, end_datetime, file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date) --- UPSERT文 -INSERT INTO distribution_schema.`crm_Product_Metrics_vod__c` (`Id`, `IsDeleted`, `Name`, `CreatedDate`, `CreatedById`, `LastModifiedDate`, `LastModifiedById`, `SystemModstamp`, `MayEdit`, `IsLocked`, `LastViewedDate`, `LastReferencedDate`, `Account_vod__c`, `Awareness__c`, `Selling_Stage__c`, `Formulary_Status__c`, `Movement__c`, `Products_vod__c`, `Segment__c`, `X12_mo_trx_chg__c`, `Speaker_Skills__c`, `Investigator_Readiness__c`, `Engagements__c`, `Mobile_ID_vod__c`, `External_ID_vod__c`, `MSJ_Patient__c`, `Detail_Group_vod__c`, `MSJ_EB_1st_Line_Liver_Meta__c`, `MSJ_EB_1st_Line_Multi_Meta__c`, `MSJ_EB_2nd_Line_Mono__c`, `MSJ_EB_2nd_Line_Combination__c`, `MSJ_EB_3rd_Line_Mono__c`, `MSJ_EB_3rd_Line_Combination__c`, `EMDS_Ability__c`, `EMDS_Brand_Loyalty__c`, `EMDS_Decision_Maker__c`, `EMDS_Early_Tech_Adopter__c`, `EMDS_Influence__c`, `EMDS_Main_Driver__c`, `EMDS_Priority__c`, `EMDS_Willingness__c`, `MSJ_KTL_Type__c`, `MSJ_KTL_Tier__c`, `MSJ_Publications__c`, `MSJ_Clinical_Trials__c`, `MSJ_Speaker_for_Medical_Events__c`, `MSJ_Advisor_to_Medical_Affairs__c`, `MSJ_Guidelines_Treatment_Standards__c`, `MSJ_Therapeutic_Area_Expertise__c`, `MSJ_MAP_GAP__c`, `MSJ_Associations__c`, `MSJ_Tier_Score__c`, `medaca_parent_msj_product_classification__c`, `start_datetime`, `end_datetime`, `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`, `LastViewedDate`, `LastReferencedDate`, `Account_vod__c`, `Awareness__c`, `Selling_Stage__c`, `Formulary_Status__c`, `Movement__c`, `Products_vod__c`, `Segment__c`, `X12_mo_trx_chg__c`, `Speaker_Skills__c`, `Investigator_Readiness__c`, `Engagements__c`, `Mobile_ID_vod__c`, `External_ID_vod__c`, `MSJ_Patient__c`, `Detail_Group_vod__c`, `MSJ_EB_1st_Line_Liver_Meta__c`, `MSJ_EB_1st_Line_Multi_Meta__c`, `MSJ_EB_2nd_Line_Mono__c`, `MSJ_EB_2nd_Line_Combination__c`, `MSJ_EB_3rd_Line_Mono__c`, `MSJ_EB_3rd_Line_Combination__c`, `EMDS_Ability__c`, `EMDS_Brand_Loyalty__c`, `EMDS_Decision_Maker__c`, `EMDS_Early_Tech_Adopter__c`, `EMDS_Influence__c`, `EMDS_Main_Driver__c`, `EMDS_Priority__c`, `EMDS_Willingness__c`, `MSJ_KTL_Type__c`, `MSJ_KTL_Tier__c`, `MSJ_Publications__c`, `MSJ_Clinical_Trials__c`, `MSJ_Speaker_for_Medical_Events__c`, `MSJ_Advisor_to_Medical_Affairs__c`, `MSJ_Guidelines_Treatment_Standards__c`, `MSJ_Therapeutic_Area_Expertise__c`, `MSJ_MAP_GAP__c`, `MSJ_Associations__c`, `MSJ_Tier_Score__c`, `medaca_parent_msj_product_classification__c`, `start_datetime`, `end_datetime`, `file_name`, `file_row_cnt`, `delete_flg`, `ins_user`, `ins_date`, `upd_user`, `upd_date` -FROM internal02.crm_Product_Metrics_vod__c WHERE Id = TempTableId; + SELECT Id, IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, MayEdit, IsLocked, LastViewedDate, LastReferencedDate, Account_vod__c, Awareness__c, Selling_Stage__c, Formulary_Status__c, Movement__c, Products_vod__c, Segment__c, X12_mo_trx_chg__c, Speaker_Skills__c, Investigator_Readiness__c, Engagements__c, Mobile_ID_vod__c, External_ID_vod__c, MSJ_Patient__c, Detail_Group_vod__c, MSJ_EB_1st_Line_Liver_Meta__c, MSJ_EB_1st_Line_Multi_Meta__c, MSJ_EB_2nd_Line_Mono__c, MSJ_EB_2nd_Line_Combination__c, MSJ_EB_3rd_Line_Mono__c, MSJ_EB_3rd_Line_Combination__c, EMDS_Ability__c, EMDS_Brand_Loyalty__c, EMDS_Decision_Maker__c, EMDS_Early_Tech_Adopter__c, EMDS_Influence__c, EMDS_Main_Driver__c, EMDS_Priority__c, EMDS_Willingness__c, MSJ_KTL_Type__c, MSJ_KTL_Tier__c, MSJ_Publications__c, MSJ_Clinical_Trials__c, MSJ_Speaker_for_Medical_Events__c, MSJ_Advisor_to_Medical_Affairs__c, MSJ_Guidelines_Treatment_Standards__c, MSJ_Therapeutic_Area_Expertise__c, MSJ_MAP_GAP__c, MSJ_Associations__c, MSJ_Tier_Score__c, medaca_parent_msj_product_classification__c, start_datetime, end_datetime, file_name, file_row_cnt, delete_flg, ins_user, ins_date, upd_user, upd_date + FROM internal02.crm_Product_Metrics_vod__c AS internaltb + WHERE Id = TempTableId + ON DUPLICATE KEY UPDATE (IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, MayEdit, IsLocked, LastViewedDate, LastReferencedDate, Account_vod__c, Awareness__c, Selling_Stage__c, Formulary_Status__c, Movement__c, Products_vod__c, Segment__c, X12_mo_trx_chg__c, Speaker_Skills__c, Investigator_Readiness__c, Engagements__c, Mobile_ID_vod__c, External_ID_vod__c, MSJ_Patient__c, Detail_Group_vod__c, MSJ_EB_1st_Line_Liver_Meta__c, MSJ_EB_1st_Line_Multi_Meta__c, MSJ_EB_2nd_Line_Mono__c, MSJ_EB_2nd_Line_Combination__c, MSJ_EB_3rd_Line_Mono__c, MSJ_EB_3rd_Line_Combination__c, EMDS_Ability__c, EMDS_Brand_Loyalty__c, EMDS_Decision_Maker__c, EMDS_Early_Tech_Adopter__c, EMDS_Influence__c, EMDS_Main_Driver__c, EMDS_Priority__c, EMDS_Willingness__c, MSJ_KTL_Type__c, MSJ_KTL_Tier__c, MSJ_Publications__c, MSJ_Clinical_Trials__c, MSJ_Speaker_for_Medical_Events__c, MSJ_Advisor_to_Medical_Affairs__c, MSJ_Guidelines_Treatment_Standards__c, MSJ_Therapeutic_Area_Expertise__c, MSJ_MAP_GAP__c, MSJ_Associations__c, MSJ_Tier_Score__c, medaca_parent_msj_product_classification__c, start_datetime, end_datetime, file_name, file_row_cnt, upd_user, upd_date) + 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, LastViewedDate = internaltb.LastViewedDate, LastReferencedDate = internaltb.LastReferencedDate, Account_vod__c = internaltb.Account_vod__c, Awareness__c = internaltb.Awareness__c, Selling_Stage__c = internaltb.Selling_Stage__c, Formulary_Status__c = internaltb.Formulary_Status__c, Movement__c = internaltb.Movement__c, Products_vod__c = internaltb.Products_vod__c, Segment__c = internaltb.Segment__c, X12_mo_trx_chg__c = internaltb.X12_mo_trx_chg__c, Speaker_Skills__c = internaltb.Speaker_Skills__c, Investigator_Readiness__c = internaltb.Investigator_Readiness__c, Engagements__c = internaltb.Engagements__c, Mobile_ID_vod__c = internaltb.Mobile_ID_vod__c, External_ID_vod__c = internaltb.External_ID_vod__c, MSJ_Patient__c = internaltb.MSJ_Patient__c, Detail_Group_vod__c = internaltb.Detail_Group_vod__c, MSJ_EB_1st_Line_Liver_Meta__c = internaltb.MSJ_EB_1st_Line_Liver_Meta__c, MSJ_EB_1st_Line_Multi_Meta__c = internaltb.MSJ_EB_1st_Line_Multi_Meta__c, MSJ_EB_2nd_Line_Mono__c = internaltb.MSJ_EB_2nd_Line_Mono__c, MSJ_EB_2nd_Line_Combination__c = internaltb.MSJ_EB_2nd_Line_Combination__c, MSJ_EB_3rd_Line_Mono__c = internaltb.MSJ_EB_3rd_Line_Mono__c, MSJ_EB_3rd_Line_Combination__c = internaltb.MSJ_EB_3rd_Line_Combination__c, EMDS_Ability__c = internaltb.EMDS_Ability__c, EMDS_Brand_Loyalty__c = internaltb.EMDS_Brand_Loyalty__c, EMDS_Decision_Maker__c = internaltb.EMDS_Decision_Maker__c, EMDS_Early_Tech_Adopter__c = internaltb.EMDS_Early_Tech_Adopter__c, EMDS_Influence__c = internaltb.EMDS_Influence__c, EMDS_Main_Driver__c = internaltb.EMDS_Main_Driver__c, EMDS_Priority__c = internaltb.EMDS_Priority__c, EMDS_Willingness__c = internaltb.EMDS_Willingness__c, MSJ_KTL_Type__c = internaltb.MSJ_KTL_Type__c, MSJ_KTL_Tier__c = internaltb.MSJ_KTL_Tier__c, MSJ_Publications__c = internaltb.MSJ_Publications__c, MSJ_Clinical_Trials__c = internaltb.MSJ_Clinical_Trials__c, MSJ_Speaker_for_Medical_Events__c = internaltb.MSJ_Speaker_for_Medical_Events__c, MSJ_Advisor_to_Medical_Affairs__c = internaltb.MSJ_Advisor_to_Medical_Affairs__c, MSJ_Guidelines_Treatment_Standards__c = internaltb.MSJ_Guidelines_Treatment_Standards__c, MSJ_Therapeutic_Area_Expertise__c = internaltb.MSJ_Therapeutic_Area_Expertise__c, MSJ_MAP_GAP__c = internaltb.MSJ_MAP_GAP__c, MSJ_Associations__c = internaltb.MSJ_Associations__c, MSJ_Tier_Score__c = internaltb.MSJ_Tier_Score__c, medaca_parent_msj_product_classification__c = internaltb.medaca_parent_msj_product_classification__c, start_datetime = internaltb.start_datetime, end_datetime = internaltb.end_datetime, file_name = internaltb.file_name, file_row_cnt = internaltb.file_row_cnt, upd_user = CURRENT_USER(), upd_date = CURRENT_TIMESTAMP() + ; --- UPSERT終了後ControlTableから削除 -DELETE FROM ControlTable WHERE Id = TempTableId; + -- UPSERT終了後ControlTableから削除 + DELETE FROM ControlTable WHERE Id = TempTableId; END WHILE; END