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 2df08345..629ce9a5 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,3 +1,7 @@ +-- A5M2で実行時に[SQL] - [スラッシュ(/)のみの行でSQLを区切る]に変えてから実行する +-- $$から始まる文字は後からREPLACEする文字を示す独自ルール +-- 当ストアドプロシージャは、同一セッション内での並列処理を実行することができない +-- 実行者の権限でストアドプロシージャを実行するために、「SQL SECURITY INVOKER」を付与している CREATE PROCEDURE `internal02`.`crm_distribution_Product_Metrics_vod__c`() SQL SECURITY INVOKER BEGIN @@ -16,7 +20,7 @@ DECLARE table_cursor CURSOR FOR SELECT Id, medaca_parent_msj_product_classificat DECLARE CONTINUE HANDLER FOR NOT FOUND SET fetch_done = TRUE; -- エラー処理 -DECLARE EXIT HANDLER FOR SQLEXCEPTION +DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN GET DIAGNOSTICS CONDITION 1 @error_state = RETURNED_SQLSTATE, @error_msg = MESSAGE_TEXT; @@ -34,70 +38,70 @@ DECLARE EXIT HANDLER FOR SQLEXCEPTION START TRANSACTION; -- UPSERT STATEMENT設定 -SET @upsert_statement_base = - '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, start_datetime, +SET @upsert_statement_base = + '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, 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, 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 = ? - 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, 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, - start_datetime = internaltb.start_datetime, end_datetime = internaltb.end_datetime, - file_name = internaltb.file_name, file_row_cnt = internaltb.file_row_cnt, + 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, 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 + 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, 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, + 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();'; OPEN table_cursor; @@ -112,9 +116,9 @@ TableCursorLoop: LOOP LEAVE TableCursorLoop; END IF; - SET @distribution_schema = get_distribution_to_schema('crm_Product_Metrics_vod__c', 'medaca_parent_msj_product_classification__c', target_column_value); + SET @distribution_schema = internal02.get_distribution_to_schema('crm_Product_Metrics_vod__c', 'medaca_parent_msj_product_classification__c', target_column_value); SET @temp_table_id = temp_table_id; - + SET @upsert_statement = REPLACE(@upsert_statement_base, "$$distribution_schema$$", @distribution_schema); -- UPSERT実行