Compare commits
2 Commits
6468d12349
...
ad5a6f393a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ad5a6f393a | ||
|
|
a4ac132b76 |
@@ -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
|
||||||
|
|||||||
@@ -0,0 +1,122 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- MARS-1409 Rollback Step 100: Drop ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS
|
||||||
|
-- columns from A_TABLE_STAT and A_TABLE_STAT_HIST
|
||||||
|
-- ============================================================================
|
||||||
|
-- Purpose: Rollback of step 10 - remove both stat self-documentation columns
|
||||||
|
-- Prerequisites: Step 10 was applied
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||||
|
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
-- ARCH_MINIMUM_AGE_MONTHS (drop first - added second)
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Dropping ARCH_MINIMUM_AGE_MONTHS column from A_TABLE_STAT...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT'
|
||||||
|
AND COLUMN_NAME = 'ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
|
||||||
|
IF vColumnExists = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCH_MINIMUM_AGE_MONTHS does not exist in A_TABLE_STAT.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_TABLE_STAT DROP COLUMN ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCH_MINIMUM_AGE_MONTHS dropped from A_TABLE_STAT successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR dropping ARCH_MINIMUM_AGE_MONTHS from A_TABLE_STAT: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Dropping ARCH_MINIMUM_AGE_MONTHS column from A_TABLE_STAT_HIST...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT_HIST'
|
||||||
|
AND COLUMN_NAME = 'ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
|
||||||
|
IF vColumnExists = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCH_MINIMUM_AGE_MONTHS does not exist in A_TABLE_STAT_HIST.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_TABLE_STAT_HIST DROP COLUMN ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCH_MINIMUM_AGE_MONTHS dropped from A_TABLE_STAT_HIST successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR dropping ARCH_MINIMUM_AGE_MONTHS from A_TABLE_STAT_HIST: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
-- ARCHIVAL_STRATEGY
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Dropping ARCHIVAL_STRATEGY column from A_TABLE_STAT...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVAL_STRATEGY';
|
||||||
|
|
||||||
|
IF vColumnExists = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCHIVAL_STRATEGY does not exist in A_TABLE_STAT.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_TABLE_STAT DROP COLUMN ARCHIVAL_STRATEGY';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCHIVAL_STRATEGY dropped from A_TABLE_STAT successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR dropping ARCHIVAL_STRATEGY from A_TABLE_STAT: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Dropping ARCHIVAL_STRATEGY column from A_TABLE_STAT_HIST...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT_HIST'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVAL_STRATEGY';
|
||||||
|
|
||||||
|
IF vColumnExists = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCHIVAL_STRATEGY does not exist in A_TABLE_STAT_HIST.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_TABLE_STAT_HIST DROP COLUMN ARCHIVAL_STRATEGY';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCHIVAL_STRATEGY dropped from A_TABLE_STAT_HIST successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR dropping ARCHIVAL_STRATEGY from A_TABLE_STAT_HIST: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Rollback step 100 completed: ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns removed from both statistics tables.
|
||||||
|
PROMPT
|
||||||
@@ -0,0 +1,153 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- MARS-1409 Step 10: Add ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns
|
||||||
|
-- to A_TABLE_STAT and A_TABLE_STAT_HIST tables
|
||||||
|
-- ============================================================================
|
||||||
|
-- Purpose: Make statistics records fully self-documenting:
|
||||||
|
-- ARCHIVAL_STRATEGY - strategy in effect when stats were gathered
|
||||||
|
-- (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID)
|
||||||
|
-- ARCH_MINIMUM_AGE_MONTHS - minimum age threshold in months; complements
|
||||||
|
-- ARCH_THRESHOLD_DAYS:
|
||||||
|
-- THRESHOLD_BASED -> ARCH_THRESHOLD_DAYS set, ARCH_MINIMUM_AGE_MONTHS NULL
|
||||||
|
-- MINIMUM_AGE_MONTHS -> ARCH_THRESHOLD_DAYS NULL, ARCH_MINIMUM_AGE_MONTHS set
|
||||||
|
-- HYBRID -> both columns set
|
||||||
|
-- Prerequisites: A_TABLE_STAT and A_TABLE_STAT_HIST tables exist
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||||
|
WHENEVER SQLERROR EXIT SQL.SQLCODE
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
-- ARCHIVAL_STRATEGY
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Adding ARCHIVAL_STRATEGY column to A_TABLE_STAT...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVAL_STRATEGY';
|
||||||
|
|
||||||
|
IF vColumnExists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCHIVAL_STRATEGY already exists in A_TABLE_STAT.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
ALTER TABLE CT_MRDS.A_TABLE_STAT ADD (
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30)
|
||||||
|
)';
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCHIVAL_STRATEGY IS
|
||||||
|
''Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)''';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCHIVAL_STRATEGY added to A_TABLE_STAT successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR adding ARCHIVAL_STRATEGY to A_TABLE_STAT: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Adding ARCHIVAL_STRATEGY column to A_TABLE_STAT_HIST...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT_HIST'
|
||||||
|
AND COLUMN_NAME = 'ARCHIVAL_STRATEGY';
|
||||||
|
|
||||||
|
IF vColumnExists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCHIVAL_STRATEGY already exists in A_TABLE_STAT_HIST.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
ALTER TABLE CT_MRDS.A_TABLE_STAT_HIST ADD (
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30)
|
||||||
|
)';
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCHIVAL_STRATEGY IS
|
||||||
|
''Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)''';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCHIVAL_STRATEGY added to A_TABLE_STAT_HIST successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR adding ARCHIVAL_STRATEGY to A_TABLE_STAT_HIST: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
-- ARCH_MINIMUM_AGE_MONTHS
|
||||||
|
-- ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Adding ARCH_MINIMUM_AGE_MONTHS column to A_TABLE_STAT...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT'
|
||||||
|
AND COLUMN_NAME = 'ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
|
||||||
|
IF vColumnExists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCH_MINIMUM_AGE_MONTHS already exists in A_TABLE_STAT.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
ALTER TABLE CT_MRDS.A_TABLE_STAT ADD (
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0)
|
||||||
|
)';
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCH_MINIMUM_AGE_MONTHS IS
|
||||||
|
''Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)''';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCH_MINIMUM_AGE_MONTHS added to A_TABLE_STAT successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR adding ARCH_MINIMUM_AGE_MONTHS to A_TABLE_STAT: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Adding ARCH_MINIMUM_AGE_MONTHS column to A_TABLE_STAT_HIST...
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vColumnExists NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO vColumnExists
|
||||||
|
FROM ALL_TAB_COLUMNS
|
||||||
|
WHERE OWNER = 'CT_MRDS'
|
||||||
|
AND TABLE_NAME = 'A_TABLE_STAT_HIST'
|
||||||
|
AND COLUMN_NAME = 'ARCH_MINIMUM_AGE_MONTHS';
|
||||||
|
|
||||||
|
IF vColumnExists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SKIP: Column ARCH_MINIMUM_AGE_MONTHS already exists in A_TABLE_STAT_HIST.');
|
||||||
|
ELSE
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
ALTER TABLE CT_MRDS.A_TABLE_STAT_HIST ADD (
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0)
|
||||||
|
)';
|
||||||
|
EXECUTE IMMEDIATE '
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCH_MINIMUM_AGE_MONTHS IS
|
||||||
|
''Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)''';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Column ARCH_MINIMUM_AGE_MONTHS added to A_TABLE_STAT_HIST successfully.');
|
||||||
|
END IF;
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR adding ARCH_MINIMUM_AGE_MONTHS to A_TABLE_STAT_HIST: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT Step 10 completed: ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns added to both statistics tables.
|
||||||
|
PROMPT
|
||||||
@@ -31,9 +31,9 @@ PROMPT =========================================================================
|
|||||||
PROMPT MARS-1409 Installation Starting
|
PROMPT MARS-1409 Installation Starting
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT Package: CT_MRDS.FILE_MANAGER v3.X.X
|
PROMPT Package: CT_MRDS.FILE_MANAGER v3.X.X
|
||||||
PROMPT Change: Add A_WORKFLOW_HISTORY_KEY to A_SOURCE_FILE_RECEIVED
|
PROMPT Change: Add A_WORKFLOW_HISTORY_KEY to A_SOURCE_FILE_RECEIVED, ARCHIVAL_STRATEGY to A_TABLE_STAT/HIST
|
||||||
PROMPT Purpose: Direct tracking of workflow history keys in file registration
|
PROMPT Purpose: Direct tracking of workflow history keys in file registration; self-documenting statistics records
|
||||||
PROMPT Steps: 11 (DDL, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER Update, Trigger Update, Verification, Tracking, Version Verification)
|
PROMPT Steps: 12 (DDL x2, ENV_MANAGER Update, FILE_MANAGER Update, FILE_ARCHIVER Update, Trigger Update, Verification, Tracking, Version Verification)
|
||||||
PROMPT Timestamp:
|
PROMPT Timestamp:
|
||||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL;
|
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS install_start FROM DUAL;
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@ -56,61 +56,67 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 2: Update ENV_MANAGER package specification
|
PROMPT STEP 2: Add ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns to A_TABLE_STAT and A_TABLE_STAT_HIST
|
||||||
|
PROMPT ============================================================================
|
||||||
|
@@10_MARS_1409_add_archival_strategy_column.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT ============================================================================
|
||||||
|
PROMPT STEP 3: Update ENV_MANAGER package specification
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@02_MARS_1409_install_CT_MRDS_ENV_MANAGER_SPEC.sql
|
@@02_MARS_1409_install_CT_MRDS_ENV_MANAGER_SPEC.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 3: Update ENV_MANAGER package body
|
PROMPT STEP 4: Update ENV_MANAGER package body
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@03_MARS_1409_install_CT_MRDS_ENV_MANAGER_BODY.sql
|
@@03_MARS_1409_install_CT_MRDS_ENV_MANAGER_BODY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 4: Update FILE_MANAGER package specification
|
PROMPT STEP 5: Update FILE_MANAGER package specification
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@04_MARS_1409_install_CT_MRDS_FILE_MANAGER_SPEC.sql
|
@@04_MARS_1409_install_CT_MRDS_FILE_MANAGER_SPEC.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 5: Update FILE_MANAGER package body
|
PROMPT STEP 6: Update FILE_MANAGER package body
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@05_MARS_1409_install_CT_MRDS_FILE_MANAGER_BODY.sql
|
@@05_MARS_1409_install_CT_MRDS_FILE_MANAGER_BODY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 6: Update FILE_ARCHIVER package specification
|
PROMPT STEP 7: Update FILE_ARCHIVER package specification
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@06_MARS_1409_install_CT_MRDS_FILE_ARCHIVER_SPEC.sql
|
@@06_MARS_1409_install_CT_MRDS_FILE_ARCHIVER_SPEC.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 7: Update FILE_ARCHIVER package body
|
PROMPT STEP 8: Update FILE_ARCHIVER package body
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@07_MARS_1409_install_CT_MRDS_FILE_ARCHIVER_BODY.sql
|
@@07_MARS_1409_install_CT_MRDS_FILE_ARCHIVER_BODY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 8: Update A_WORKFLOW_HISTORY trigger
|
PROMPT STEP 9: Update A_WORKFLOW_HISTORY trigger
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql
|
@@08_MARS_1409_install_CT_MRDS_A_WORKFLOW_HISTORY.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 9: Verify installation
|
PROMPT STEP 10: Verify installation
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@09_MARS_1409_verify_installation.sql
|
@@09_MARS_1409_verify_installation.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 10: Track package versions
|
PROMPT STEP 11: Track package versions
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@track_package_versions.sql
|
@@track_package_versions.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 11: Verify package versions
|
PROMPT STEP 12: Verify package versions
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@verify_packages_version.sql
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- A_TABLE_STAT Table
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose: Store current table statistics and archival thresholds
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
CREATE TABLE CT_MRDS.A_TABLE_STAT (
|
||||||
|
A_TABLE_STAT_KEY NUMBER(38,0) PRIMARY KEY,
|
||||||
|
A_SOURCE_FILE_CONFIG_KEY NUMBER(38,0) NOT NULL,
|
||||||
|
TABLE_NAME VARCHAR2(200) NOT NULL,
|
||||||
|
FILE_COUNT NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_FILE_COUNT NUMBER(38,0),
|
||||||
|
ROW_COUNT NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_ROW_COUNT NUMBER(38,0),
|
||||||
|
SIZE NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
||||||
|
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
||||||
|
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30),
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0),
|
||||||
|
CONSTRAINT A_TABLE_STAT_UK1 UNIQUE(A_SOURCE_FILE_CONFIG_KEY)
|
||||||
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCHIVAL_STRATEGY IS 'Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCH_MINIMUM_AGE_MONTHS IS 'Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
|
||||||
|
-- Unique constraint index (from production export)
|
||||||
|
CREATE UNIQUE INDEX "CT_MRDS"."A_TABLE_STAT_UK1"
|
||||||
|
ON "CT_MRDS"."A_TABLE_STAT" ("A_SOURCE_FILE_CONFIG_KEY")
|
||||||
|
TABLESPACE "DATA";
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- A_TABLE_STAT_HIST Table
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose: Store historical table statistics for trend analysis
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
CREATE TABLE CT_MRDS.A_TABLE_STAT_HIST (
|
||||||
|
A_TABLE_STAT_HIST_KEY NUMBER(38,0) PRIMARY KEY,
|
||||||
|
A_SOURCE_FILE_CONFIG_KEY NUMBER(38,0) NOT NULL,
|
||||||
|
TABLE_NAME VARCHAR2(200) NOT NULL,
|
||||||
|
FILE_COUNT NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_FILE_COUNT NUMBER(38,0),
|
||||||
|
ROW_COUNT NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_ROW_COUNT NUMBER(38,0),
|
||||||
|
SIZE NUMBER(38,0),
|
||||||
|
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
||||||
|
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
||||||
|
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30),
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0)
|
||||||
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCHIVAL_STRATEGY IS 'Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCH_MINIMUM_AGE_MONTHS IS 'Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
@@ -498,6 +498,8 @@ AS
|
|||||||
,nvl(sum(case when ' || vWhereClause || ' then r.bytes else 0 end), 0) as OLD_BYTES
|
,nvl(sum(case when ' || vWhereClause || ' then r.bytes else 0 end), 0) as OLD_BYTES
|
||||||
,'||COALESCE(TO_CHAR(vSourceFileConfig.ARCHIVE_THRESHOLD_DAYS), 'NULL')||' as ARCHIVE_THRESHOLD_DAYS
|
,'||COALESCE(TO_CHAR(vSourceFileConfig.ARCHIVE_THRESHOLD_DAYS), 'NULL')||' as ARCHIVE_THRESHOLD_DAYS
|
||||||
,systimestamp as CREATED
|
,systimestamp as CREATED
|
||||||
|
,'''||vSourceFileConfig.ARCHIVAL_STRATEGY||''' as ARCHIVAL_STRATEGY
|
||||||
|
,'||COALESCE(TO_CHAR(vSourceFileConfig.MINIMUM_AGE_MONTHS), 'NULL')||' as ARCH_MINIMUM_AGE_MONTHS
|
||||||
from tmp_gr t
|
from tmp_gr t
|
||||||
join (SELECT * from DBMS_CLOUD.LIST_OBJECTS(
|
join (SELECT * from DBMS_CLOUD.LIST_OBJECTS(
|
||||||
credential_name => '''||CT_MRDS.ENV_MANAGER.gvCredentialName||''',
|
credential_name => '''||CT_MRDS.ENV_MANAGER.gvCredentialName||''',
|
||||||
@@ -524,6 +526,8 @@ AS
|
|||||||
vStats.OVER_ARCH_THRESOLD_SIZE := 0;
|
vStats.OVER_ARCH_THRESOLD_SIZE := 0;
|
||||||
vStats.ARCH_THRESHOLD_DAYS := vSourceFileConfig.ARCHIVE_THRESHOLD_DAYS;
|
vStats.ARCH_THRESHOLD_DAYS := vSourceFileConfig.ARCHIVE_THRESHOLD_DAYS;
|
||||||
vStats.CREATED := SYSTIMESTAMP;
|
vStats.CREATED := SYSTIMESTAMP;
|
||||||
|
vStats.ARCHIVAL_STRATEGY := vSourceFileConfig.ARCHIVAL_STRATEGY;
|
||||||
|
vStats.ARCH_MINIMUM_AGE_MONTHS := vSourceFileConfig.MINIMUM_AGE_MONTHS;
|
||||||
ELSE
|
ELSE
|
||||||
RAISE;
|
RAISE;
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ AS
|
|||||||
|
|
||||||
-- Version History (Latest changes first)
|
-- Version History (Latest changes first)
|
||||||
VERSION_HISTORY CONSTANT VARCHAR2(4000) :=
|
VERSION_HISTORY CONSTANT VARCHAR2(4000) :=
|
||||||
'3.3.1 (2026-03-13): MARS-1468 - Fixed ORA-29913 handling in ARCHIVE_TABLE_DATA (graceful RETURN when ODS bucket is empty) and GATHER_TABLE_STAT (saves zero statistics instead of raising error)' || CHR(13)||CHR(10) ||
|
'3.3.1 (2026-03-13): Fixed ORA-29913 handling in ARCHIVE_TABLE_DATA (graceful RETURN when ODS bucket is empty) and GATHER_TABLE_STAT (saves zero statistics instead of raising error)' || CHR(13)||CHR(10) ||
|
||||||
'3.3.0 (2026-02-11): Added IS_ARCHIVE_ENABLED and IS_KEEP_IN_TRASH columns to A_SOURCE_FILE_CONFIG for selective archiving and config-based TRASH policy. Removed pKeepInTrash parameter (now from config). Added ARCHIVE_ALL batch procedure with 3-level granularity (config/source/all). Added GATHER_TABLE_STAT_ALL batch statistics procedure with 3-level granularity. Added RESTORE_FILE_FROM_TRASH and PURGE_TRASH_FOLDER with 3-level granularity' || CHR(13)||CHR(10) ||
|
'3.3.0 (2026-02-11): Added IS_ARCHIVE_ENABLED and IS_KEEP_IN_TRASH columns to A_SOURCE_FILE_CONFIG for selective archiving and config-based TRASH policy. Removed pKeepInTrash parameter (now from config). Added ARCHIVE_ALL batch procedure with 3-level granularity (config/source/all). Added GATHER_TABLE_STAT_ALL batch statistics procedure with 3-level granularity. Added RESTORE_FILE_FROM_TRASH and PURGE_TRASH_FOLDER with 3-level granularity' || CHR(13)||CHR(10) ||
|
||||||
'3.2.1 (2026-02-10): Fixed status update - ARCHIVED → ARCHIVED_AND_TRASHED when moving files to TRASH folder (critical bug fix)' || CHR(13)||CHR(10) ||
|
'3.2.1 (2026-02-10): Fixed status update - ARCHIVED → ARCHIVED_AND_TRASHED when moving files to TRASH folder (critical bug fix)' || CHR(13)||CHR(10) ||
|
||||||
'3.2.0 (2026-02-06): Added pKeepInTrash parameter (DEFAULT TRUE) to ARCHIVE_TABLE_DATA for TRASH folder retention control - files kept in TRASH subfolder (DATA bucket) by default for safety and compliance' || CHR(13)||CHR(10) ||
|
'3.2.0 (2026-02-06): Added pKeepInTrash parameter (DEFAULT TRUE) to ARCHIVE_TABLE_DATA for TRASH folder retention control - files kept in TRASH subfolder (DATA bucket) by default for safety and compliance' || CHR(13)||CHR(10) ||
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ PROMPT MARS-1409 Rollback Starting
|
|||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT Package: CT_MRDS.FILE_MANAGER
|
PROMPT Package: CT_MRDS.FILE_MANAGER
|
||||||
PROMPT Change: Remove A_WORKFLOW_HISTORY_KEY column and restore previous version
|
PROMPT Change: Remove A_WORKFLOW_HISTORY_KEY column and restore previous version
|
||||||
PROMPT Steps: 10 (Restore FILE_ARCHIVER, Restore FILE_MANAGER, Restore ENV_MANAGER, Restore trigger, Clear data, Drop column, Verify)
|
PROMPT Steps: 11 (Restore FILE_ARCHIVER, Restore FILE_MANAGER, Restore ENV_MANAGER, Restore trigger, Drop ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns, Clear data, Drop column, Verify)
|
||||||
PROMPT Timestamp:
|
PROMPT Timestamp:
|
||||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS rollback_start FROM DUAL;
|
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS rollback_start FROM DUAL;
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@ -91,19 +91,25 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 8: Drop A_WORKFLOW_HISTORY_KEY column
|
PROMPT STEP 8: Drop ARCHIVAL_STRATEGY and ARCH_MINIMUM_AGE_MONTHS columns from A_TABLE_STAT and A_TABLE_STAT_HIST
|
||||||
|
PROMPT ============================================================================
|
||||||
|
@@100_MARS_1409_rollback_archival_strategy_column.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT ============================================================================
|
||||||
|
PROMPT STEP 9: Drop A_WORKFLOW_HISTORY_KEY column
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@99_MARS_1409_rollback_workflow_history_key_column.sql
|
@@99_MARS_1409_rollback_workflow_history_key_column.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 9: Verify rollback
|
PROMPT STEP 10: Verify rollback
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@90_MARS_1409_verify_rollback.sql
|
@@90_MARS_1409_verify_rollback.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
PROMPT STEP 10: Verify package versions
|
PROMPT STEP 11: Verify package versions
|
||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
@@verify_packages_version.sql
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
|
|||||||
@@ -16,9 +16,14 @@ CREATE TABLE CT_MRDS.A_TABLE_STAT (
|
|||||||
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
||||||
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
||||||
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30),
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0),
|
||||||
CONSTRAINT A_TABLE_STAT_UK1 UNIQUE(A_SOURCE_FILE_CONFIG_KEY)
|
CONSTRAINT A_TABLE_STAT_UK1 UNIQUE(A_SOURCE_FILE_CONFIG_KEY)
|
||||||
) TABLESPACE "DATA";
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCHIVAL_STRATEGY IS 'Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT.ARCH_MINIMUM_AGE_MONTHS IS 'Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
|
||||||
-- Unique constraint index (from production export)
|
-- Unique constraint index (from production export)
|
||||||
CREATE UNIQUE INDEX "CT_MRDS"."A_TABLE_STAT_UK1"
|
CREATE UNIQUE INDEX "CT_MRDS"."A_TABLE_STAT_UK1"
|
||||||
ON "CT_MRDS"."A_TABLE_STAT" ("A_SOURCE_FILE_CONFIG_KEY")
|
ON "CT_MRDS"."A_TABLE_STAT" ("A_SOURCE_FILE_CONFIG_KEY")
|
||||||
|
|||||||
@@ -15,5 +15,10 @@ CREATE TABLE CT_MRDS.A_TABLE_STAT_HIST (
|
|||||||
SIZE NUMBER(38,0),
|
SIZE NUMBER(38,0),
|
||||||
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
OVER_ARCH_THRESOLD_SIZE NUMBER(38,0),
|
||||||
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
ARCH_THRESHOLD_DAYS NUMBER(4,0),
|
||||||
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP
|
CREATED TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
|
||||||
|
ARCHIVAL_STRATEGY VARCHAR2(30),
|
||||||
|
ARCH_MINIMUM_AGE_MONTHS NUMBER(4,0)
|
||||||
) TABLESPACE "DATA";
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCHIVAL_STRATEGY IS 'Archival strategy used when statistics were gathered (THRESHOLD_BASED, MINIMUM_AGE_MONTHS, HYBRID). Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
|
COMMENT ON COLUMN CT_MRDS.A_TABLE_STAT_HIST.ARCH_MINIMUM_AGE_MONTHS IS 'Minimum age threshold in months used when statistics were gathered. Populated for MINIMUM_AGE_MONTHS and HYBRID strategies; NULL for THRESHOLD_BASED. Complements ARCH_THRESHOLD_DAYS. Populated by FILE_ARCHIVER.GATHER_TABLE_STAT (MARS-1409)';
|
||||||
Reference in New Issue
Block a user