feat: Update installation script to reflect expected duration for MARS-1409 post-hook process
This commit is contained in:
@@ -88,10 +88,11 @@ BEGIN
|
|||||||
' (' || 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 || ')...');
|
||||||
|
|
||||||
-- Update using ODS table
|
-- Update using ODS table
|
||||||
|
-- NO_PARALLEL hint required: ODS external tables (OCI Object Storage) fail with ORA-12801 under parallel query
|
||||||
vSQL :=
|
vSQL :=
|
||||||
'UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED sfr ' ||
|
'UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED sfr ' ||
|
||||||
'SET A_WORKFLOW_HISTORY_KEY = ( ' ||
|
'SET A_WORKFLOW_HISTORY_KEY = ( ' ||
|
||||||
' SELECT t.A_WORKFLOW_HISTORY_KEY ' ||
|
' SELECT /*+ NO_PARALLEL(t) */ t.A_WORKFLOW_HISTORY_KEY ' ||
|
||||||
' FROM ' || vTableName || ' t ' ||
|
' FROM ' || vTableName || ' t ' ||
|
||||||
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
||||||
' AND rownum=1 ' ||
|
' AND rownum=1 ' ||
|
||||||
@@ -100,13 +101,13 @@ BEGIN
|
|||||||
' AND sfr.A_WORKFLOW_HISTORY_KEY IS NULL ' ||
|
' AND sfr.A_WORKFLOW_HISTORY_KEY IS NULL ' ||
|
||||||
' AND sfr.PROCESSING_STATUS IN (''VALIDATED'', ''READY_FOR_INGESTION'', ''INGESTED'', ''ARCHIVED'', ''ARCHIVED_AND_TRASHED'', ''ARCHIVED_AND_PURGED'') ' ||
|
' AND sfr.PROCESSING_STATUS IN (''VALIDATED'', ''READY_FOR_INGESTION'', ''INGESTED'', ''ARCHIVED'', ''ARCHIVED_AND_TRASHED'', ''ARCHIVED_AND_PURGED'') ' ||
|
||||||
' AND EXISTS ( ' ||
|
' AND EXISTS ( ' ||
|
||||||
' SELECT 1 FROM ' || vTableName || ' t ' ||
|
' SELECT /*+ NO_PARALLEL(t) */ 1 FROM ' || vTableName || ' t ' ||
|
||||||
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
||||||
' AND rownum=1 ' ||
|
' AND rownum=1 ' ||
|
||||||
' )';
|
' )';
|
||||||
|
|
||||||
EXECUTE IMMEDIATE vSQL USING config_rec.A_SOURCE_FILE_CONFIG_KEY;
|
EXECUTE IMMEDIATE vSQL USING config_rec.A_SOURCE_FILE_CONFIG_KEY;
|
||||||
|
commit;
|
||||||
vUpdatedCurrent := SQL%ROWCOUNT;
|
vUpdatedCurrent := SQL%ROWCOUNT;
|
||||||
vUpdatedTotal := vUpdatedTotal + vUpdatedCurrent;
|
vUpdatedTotal := vUpdatedTotal + vUpdatedCurrent;
|
||||||
|
|
||||||
@@ -177,3 +178,47 @@ END;
|
|||||||
PROMPT
|
PROMPT
|
||||||
PROMPT Existing workflow keys update completed!
|
PROMPT Existing workflow keys update completed!
|
||||||
PROMPT
|
PROMPT
|
||||||
|
|
||||||
|
-- ============================================================================
|
||||||
|
-- Step 2: Set PROCESSING_STATUS = 'INGESTED' for records whose workflow
|
||||||
|
-- completed successfully (mirrors trigger A_WORKFLOW_HISTORY logic)
|
||||||
|
-- ============================================================================
|
||||||
|
PROMPT
|
||||||
|
PROMPT Updating PROCESSING_STATUS to INGESTED for completed workflows...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vUpdatedIngested NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED sfr
|
||||||
|
SET sfr.PROCESSING_STATUS = 'INGESTED',
|
||||||
|
sfr.PROCESS_NAME = (
|
||||||
|
SELECT wh.service_name
|
||||||
|
FROM CT_MRDS.A_WORKFLOW_HISTORY wh
|
||||||
|
WHERE wh.a_workflow_history_key = sfr.a_workflow_history_key
|
||||||
|
)
|
||||||
|
WHERE sfr.A_WORKFLOW_HISTORY_KEY IS NOT NULL
|
||||||
|
AND sfr.PROCESSING_STATUS IN ('READY_FOR_INGESTION')
|
||||||
|
AND EXISTS (
|
||||||
|
SELECT 1
|
||||||
|
FROM CT_MRDS.A_WORKFLOW_HISTORY wh
|
||||||
|
WHERE wh.a_workflow_history_key = sfr.a_workflow_history_key
|
||||||
|
AND wh.workflow_successful = 'Y'
|
||||||
|
);
|
||||||
|
|
||||||
|
vUpdatedIngested := SQL%ROWCOUNT;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Updated PROCESSING_STATUS to INGESTED: ' || vUpdatedIngested || ' record(s)');
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
ROLLBACK;
|
||||||
|
DBMS_OUTPUT.PUT_LINE('FATAL ERROR: ' || SQLERRM);
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Transaction rolled back');
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT INGESTED status update completed!
|
||||||
|
PROMPT
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ PROMPT - Match records by SOURCE_FILE_NAME against file$name in ODS tables
|
|||||||
PROMPT - Skip configs with no NULL records or missing ODS tables
|
PROMPT - Skip configs with no NULL records or missing ODS tables
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT Prerequisite: MARS-1409 installed (A_WORKFLOW_HISTORY_KEY column exists)
|
PROMPT Prerequisite: MARS-1409 installed (A_WORKFLOW_HISTORY_KEY column exists)
|
||||||
PROMPT Expected Duration: 1-5 minutes (depends on data volume)
|
PROMPT Expected Duration: 30-180 minutes (depends on data volume)
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
|
|
||||||
-- Confirm installation with user
|
-- Confirm installation with user
|
||||||
|
|||||||
Reference in New Issue
Block a user