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 || ')...');
|
||||
|
||||
-- Update using ODS table
|
||||
-- NO_PARALLEL hint required: ODS external tables (OCI Object Storage) fail with ORA-12801 under parallel query
|
||||
vSQL :=
|
||||
'UPDATE CT_MRDS.A_SOURCE_FILE_RECEIVED sfr ' ||
|
||||
'SET A_WORKFLOW_HISTORY_KEY = ( ' ||
|
||||
' SELECT t.A_WORKFLOW_HISTORY_KEY ' ||
|
||||
' SELECT /*+ NO_PARALLEL(t) */ t.A_WORKFLOW_HISTORY_KEY ' ||
|
||||
' FROM ' || vTableName || ' t ' ||
|
||||
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
||||
' AND rownum=1 ' ||
|
||||
@@ -100,13 +101,13 @@ BEGIN
|
||||
' 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 EXISTS ( ' ||
|
||||
' SELECT 1 FROM ' || vTableName || ' t ' ||
|
||||
' SELECT /*+ NO_PARALLEL(t) */ 1 FROM ' || vTableName || ' t ' ||
|
||||
' WHERE t.file$name = sfr.SOURCE_FILE_NAME ' ||
|
||||
' AND rownum=1 ' ||
|
||||
' )';
|
||||
|
||||
EXECUTE IMMEDIATE vSQL USING config_rec.A_SOURCE_FILE_CONFIG_KEY;
|
||||
|
||||
commit;
|
||||
vUpdatedCurrent := SQL%ROWCOUNT;
|
||||
vUpdatedTotal := vUpdatedTotal + vUpdatedCurrent;
|
||||
|
||||
@@ -177,3 +178,47 @@ END;
|
||||
PROMPT
|
||||
PROMPT Existing workflow keys update completed!
|
||||
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
|
||||
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 ============================================================================
|
||||
|
||||
-- Confirm installation with user
|
||||
|
||||
Reference in New Issue
Block a user