feat: Enhance MARS-1409 post-hook scripts to include checks for empty ODS tables and update installation script for workflow key diagnosis
This commit is contained in:
@@ -22,6 +22,8 @@ DECLARE
|
|||||||
vFailedConfigs NUMBER := 0;
|
vFailedConfigs NUMBER := 0;
|
||||||
vTableNotFound NUMBER := 0;
|
vTableNotFound NUMBER := 0;
|
||||||
vSkippedConfigs NUMBER := 0;
|
vSkippedConfigs NUMBER := 0;
|
||||||
|
vEmptyTables NUMBER := 0;
|
||||||
|
vHasData NUMBER := 0;
|
||||||
vTableName VARCHAR2(200);
|
vTableName VARCHAR2(200);
|
||||||
vSQL VARCHAR2(32767);
|
vSQL VARCHAR2(32767);
|
||||||
vRecordsToUpdate NUMBER := 0;
|
vRecordsToUpdate NUMBER := 0;
|
||||||
@@ -84,6 +86,28 @@ BEGIN
|
|||||||
CONTINUE;
|
CONTINUE;
|
||||||
END IF;
|
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 ||
|
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 || ')...');
|
' (' || 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(' Total records updated: ' || vUpdatedTotal);
|
||||||
DBMS_OUTPUT.PUT_LINE(' Configurations skipped (no NULL records): ' || vSkippedConfigs);
|
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 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);
|
DBMS_OUTPUT.PUT_LINE(' Configurations failed (unexpected errors): ' || vFailedConfigs);
|
||||||
|
|
||||||
-- Check remaining NULL records - targeted statuses only
|
-- Check remaining NULL records - targeted statuses only
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ PROMPT
|
|||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 2: Diagnose workflow key status
|
PROMPT STEP 2: Diagnose workflow key status
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@diagnose_workflow_key_status.sql
|
@@02_MARS_1409_POSTHOOK_diagnose_workflow_key_status.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user