From 0725119b45f1837f77399b40f4ad491b9a6d6ac1 Mon Sep 17 00:00:00 2001 From: Grzegorz Michalski Date: Tue, 17 Mar 2026 12:10:18 +0100 Subject: [PATCH] feat: Enhance MARS-1409 post-hook scripts to include checks for empty ODS tables and update installation script for workflow key diagnosis --- ...POSTHOOK_update_existing_workflow_keys.sql | 25 +++++++++++++++++++ .../install_mars1409_posthook.sql | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql index eeb518d..88c478a 100644 --- a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql @@ -22,6 +22,8 @@ DECLARE vFailedConfigs NUMBER := 0; vTableNotFound NUMBER := 0; vSkippedConfigs NUMBER := 0; + vEmptyTables NUMBER := 0; + vHasData NUMBER := 0; vTableName VARCHAR2(200); vSQL VARCHAR2(32767); vRecordsToUpdate NUMBER := 0; @@ -84,6 +86,28 @@ BEGIN CONTINUE; END IF; + -- Pre-check: verify ODS table has accessible data (empty external table throws ORA-29913/KUP-05002) + vHasData := 0; + BEGIN + EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM (SELECT 1 FROM ' || vTableName || ' t WHERE ROWNUM = 1)' + INTO vHasData; + EXCEPTION + WHEN OTHERS THEN + IF SQLCODE = -29913 OR INSTR(SQLERRM, 'KUP-05002') > 0 THEN + NULL; -- vHasData stays 0 + ELSE + RAISE; + END IF; + END; + + IF vHasData = 0 THEN + vEmptyTables := vEmptyTables + 1; + DBMS_OUTPUT.PUT_LINE('SKIP: Config ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || + ' (' || config_rec.A_SOURCE_KEY || '/' || config_rec.SOURCE_FILE_ID || '/' || config_rec.TABLE_ID || + ') - ODS table has no files at storage location (empty): ' || vTableName); + CONTINUE; + END IF; + DBMS_OUTPUT.PUT_LINE('Processing config ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ' (' || config_rec.A_SOURCE_KEY || '/' || config_rec.SOURCE_FILE_ID || '/' || config_rec.TABLE_ID || ')...'); @@ -134,6 +158,7 @@ BEGIN DBMS_OUTPUT.PUT_LINE(' Total records updated: ' || vUpdatedTotal); DBMS_OUTPUT.PUT_LINE(' Configurations skipped (no NULL records): ' || vSkippedConfigs); DBMS_OUTPUT.PUT_LINE(' Configurations skipped (ODS table not found): ' || vTableNotFound); + DBMS_OUTPUT.PUT_LINE(' Configurations skipped (ODS table empty - no files at location): ' || vEmptyTables); DBMS_OUTPUT.PUT_LINE(' Configurations failed (unexpected errors): ' || vFailedConfigs); -- Check remaining NULL records - targeted statuses only diff --git a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql index 932210c..bc71dfe 100644 --- a/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql +++ b/MARS_Packages/REL02_POST/MARS-1409-POSTHOOK/install_mars1409_posthook.sql @@ -63,7 +63,7 @@ PROMPT PROMPT ============================================================================ PROMPT STEP 2: Diagnose workflow key status PROMPT ============================================================================ -@@diagnose_workflow_key_status.sql +@@02_MARS_1409_POSTHOOK_diagnose_workflow_key_status.sql PROMPT PROMPT ============================================================================