-- ============================================================================ -- MARS-1409-POSTHOOK Master Installation Script -- ============================================================================ -- Purpose: Post-hook for MARS-1409 - Backfill A_WORKFLOW_HISTORY_KEY for -- existing A_SOURCE_FILE_RECEIVED records by joining with ODS tables. -- Author: Grzegorz Michalski -- Date: 2026-03-13 -- Prerequisites: MARS-1409 must be installed first (column must exist) -- ============================================================================ SET SERVEROUTPUT ON SIZE UNLIMITED SET VERIFY OFF SET FEEDBACK ON SET ECHO OFF -- Create log directory if it doesn't exist host mkdir log 2>nul -- Generate dynamic SPOOL filename with timestamp var filename VARCHAR2(100) BEGIN :filename := 'log/INSTALL_MARS_1409_POSTHOOK_' || SYS_CONTEXT('USERENV', 'CON_NAME') || '_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS') || '.log'; END; / column filename new_value _filename select :filename filename from dual; spool &_filename PROMPT PROMPT ============================================================================ PROMPT MARS-1409-POSTHOOK Installation Starting PROMPT ============================================================================ PROMPT Purpose: Backfill A_WORKFLOW_HISTORY_KEY for historical records PROMPT in A_SOURCE_FILE_RECEIVED using matching ODS tables. PROMPT PROMPT This script will: PROMPT - Update A_WORKFLOW_HISTORY_KEY for records with targeted PROCESSING_STATUS 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 ============================================================================ -- Confirm installation with user ACCEPT continue CHAR PROMPT 'Type YES to continue with installation, or Ctrl+C to abort: ' WHENEVER SQLERROR EXIT SQL.SQLCODE BEGIN IF '&continue' IS NULL OR TRIM('&continue') IS NULL OR UPPER(TRIM('&continue')) != 'YES' THEN RAISE_APPLICATION_ERROR(-20000, 'Installation aborted by user'); END IF; END; / WHENEVER SQLERROR CONTINUE PROMPT PROMPT ============================================================================ PROMPT STEP 1: Backfill A_WORKFLOW_HISTORY_KEY for existing records PROMPT ============================================================================ @@01_MARS_1409_POSTHOOK_update_existing_workflow_keys.sql PROMPT PROMPT ============================================================================ PROMPT MARS-1409-POSTHOOK Installation Complete PROMPT ============================================================================ PROMPT Final Status: SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_end FROM DUAL; PROMPT PROMPT Review the log file for detailed results: &_filename PROMPT ============================================================================ spool off quit;