Zmiana nazw kolumn
ARCHIVE_ENABLED → IS_ARCHIVE_ENABLED (konwencja boolean) KEEP_IN_TRASH → IS_KEEP_IN_TRASH (konwencja boolean)
This commit is contained in:
@@ -11,8 +11,8 @@ PROMPT ========================================
|
|||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD (
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD (
|
||||||
ARCHIVAL_STRATEGY VARCHAR2(30) DEFAULT 'THRESHOLD_BASED' NOT NULL,
|
ARCHIVAL_STRATEGY VARCHAR2(30) DEFAULT 'THRESHOLD_BASED' NOT NULL,
|
||||||
MINIMUM_AGE_MONTHS NUMBER(3) DEFAULT NULL,
|
MINIMUM_AGE_MONTHS NUMBER(3) DEFAULT NULL,
|
||||||
ARCHIVE_ENABLED CHAR(1) DEFAULT 'N' NOT NULL,
|
IS_ARCHIVE_ENABLED CHAR(1) DEFAULT 'N' NOT NULL,
|
||||||
KEEP_IN_TRASH CHAR(1) DEFAULT 'Y' NOT NULL
|
IS_KEEP_IN_TRASH CHAR(1) DEFAULT 'Y' NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Add check constraints
|
-- Add check constraints
|
||||||
@@ -22,10 +22,10 @@ ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD CONSTRAINT
|
|||||||
);
|
);
|
||||||
|
|
||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD CONSTRAINT
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD CONSTRAINT
|
||||||
CHK_ARCHIVE_ENABLED CHECK (ARCHIVE_ENABLED IN ('Y', 'N'));
|
CHK_IS_ARCHIVE_ENABLED CHECK (IS_ARCHIVE_ENABLED IN ('Y', 'N'));
|
||||||
|
|
||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD CONSTRAINT
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG ADD CONSTRAINT
|
||||||
CHK_KEEP_IN_TRASH CHECK (KEEP_IN_TRASH IN ('Y', 'N'));
|
CHK_IS_KEEP_IN_TRASH CHECK (IS_KEEP_IN_TRASH IN ('Y', 'N'));
|
||||||
|
|
||||||
-- Add comments
|
-- Add comments
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVAL_STRATEGY IS
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVAL_STRATEGY IS
|
||||||
@@ -34,10 +34,10 @@ COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVAL_STRATEGY IS
|
|||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.MINIMUM_AGE_MONTHS IS
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.MINIMUM_AGE_MONTHS IS
|
||||||
'Minimum age in months for archival (used with MINIMUM_AGE_MONTHS or HYBRID strategies)';
|
'Minimum age in months for archival (used with MINIMUM_AGE_MONTHS or HYBRID strategies)';
|
||||||
|
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVE_ENABLED IS
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.IS_ARCHIVE_ENABLED IS
|
||||||
'Y=Enable archiving, N=Skip archiving. Controls if table participates in archival process. Added in MARS-828 v3.3.0';
|
'Y=Enable archiving, N=Skip archiving. Controls if table participates in archival process. Added in MARS-828 v3.3.0';
|
||||||
|
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.KEEP_IN_TRASH IS
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.IS_KEEP_IN_TRASH IS
|
||||||
'Y=Keep files in TRASH after archiving, N=Delete immediately. Controls TRASH retention policy. Added in MARS-828 v3.3.0';
|
'Y=Keep files in TRASH after archiving, N=Delete immediately. Controls TRASH retention policy. Added in MARS-828 v3.3.0';
|
||||||
|
|
||||||
-- Verify columns added
|
-- Verify columns added
|
||||||
@@ -50,7 +50,7 @@ SELECT
|
|||||||
FROM all_tab_columns
|
FROM all_tab_columns
|
||||||
WHERE owner = 'CT_MRDS'
|
WHERE owner = 'CT_MRDS'
|
||||||
AND table_name = 'A_SOURCE_FILE_CONFIG'
|
AND table_name = 'A_SOURCE_FILE_CONFIG'
|
||||||
AND column_name IN ('ARCHIVAL_STRATEGY', 'MINIMUM_AGE_MONTHS', 'ARCHIVE_ENABLED', 'KEEP_IN_TRASH')
|
AND column_name IN ('ARCHIVAL_STRATEGY', 'MINIMUM_AGE_MONTHS', 'IS_ARCHIVE_ENABLED', 'IS_KEEP_IN_TRASH')
|
||||||
ORDER BY column_id;
|
ORDER BY column_id;
|
||||||
|
|
||||||
PROMPT ========================================
|
PROMPT ========================================
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS',
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824, -- 1 GB
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824, -- 1 GB
|
||||||
HOURS_TO_EXPIRE_STATISTICS = 24,
|
HOURS_TO_EXPIRE_STATISTICS = 24,
|
||||||
ARCHIVE_ENABLED = 'Y', -- Enable archival for all LM tables
|
IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for all LM tables
|
||||||
KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
AND A_SOURCE_KEY = 'LM'
|
AND A_SOURCE_KEY = 'LM'
|
||||||
AND TABLE_ID IN (
|
AND TABLE_ID IN (
|
||||||
@@ -107,8 +107,8 @@ SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS',
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912, -- 512 MB
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912, -- 512 MB
|
||||||
HOURS_TO_EXPIRE_STATISTICS = 48,
|
HOURS_TO_EXPIRE_STATISTICS = 48,
|
||||||
ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB DEBT tables
|
IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB DEBT tables
|
||||||
KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
AND A_SOURCE_KEY = 'CSDB'
|
AND A_SOURCE_KEY = 'CSDB'
|
||||||
AND TABLE_ID IN ('CSDB_DEBT', 'CSDB_DEBT_DAILY');
|
AND TABLE_ID IN ('CSDB_DEBT', 'CSDB_DEBT_DAILY');
|
||||||
@@ -133,8 +133,8 @@ SET ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS',
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456, -- 256 MB
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456, -- 256 MB
|
||||||
HOURS_TO_EXPIRE_STATISTICS = 72,
|
HOURS_TO_EXPIRE_STATISTICS = 72,
|
||||||
ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB rating/description tables
|
IS_ARCHIVE_ENABLED = 'Y', -- Enable archival for CSDB rating/description tables
|
||||||
KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
IS_KEEP_IN_TRASH = 'N' -- Delete files immediately after archival (no TRASH retention)
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
AND A_SOURCE_KEY = 'CSDB'
|
AND A_SOURCE_KEY = 'CSDB'
|
||||||
AND TABLE_ID IN (
|
AND TABLE_ID IN (
|
||||||
@@ -174,8 +174,8 @@ SELECT
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
||||||
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
KEEP_IN_TRASH,
|
IS_KEEP_IN_TRASH,
|
||||||
CASE
|
CASE
|
||||||
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
||||||
AND MINIMUM_AGE_MONTHS = 0
|
AND MINIMUM_AGE_MONTHS = 0
|
||||||
@@ -183,8 +183,8 @@ SELECT
|
|||||||
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000
|
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 100000
|
||||||
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824
|
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 1073741824
|
||||||
AND HOURS_TO_EXPIRE_STATISTICS = 24
|
AND HOURS_TO_EXPIRE_STATISTICS = 24
|
||||||
AND ARCHIVE_ENABLED = 'Y'
|
AND IS_ARCHIVE_ENABLED = 'Y'
|
||||||
AND KEEP_IN_TRASH = 'N'
|
AND IS_KEEP_IN_TRASH = 'N'
|
||||||
THEN 'OK'
|
THEN 'OK'
|
||||||
ELSE 'ERROR'
|
ELSE 'ERROR'
|
||||||
END AS STATUS
|
END AS STATUS
|
||||||
@@ -206,8 +206,8 @@ SELECT
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
||||||
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
KEEP_IN_TRASH,
|
IS_KEEP_IN_TRASH,
|
||||||
CASE
|
CASE
|
||||||
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
||||||
AND MINIMUM_AGE_MONTHS = 6
|
AND MINIMUM_AGE_MONTHS = 6
|
||||||
@@ -215,8 +215,8 @@ SELECT
|
|||||||
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000
|
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 50000
|
||||||
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912
|
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 536870912
|
||||||
AND HOURS_TO_EXPIRE_STATISTICS = 48
|
AND HOURS_TO_EXPIRE_STATISTICS = 48
|
||||||
AND ARCHIVE_ENABLED = 'Y'
|
AND IS_ARCHIVE_ENABLED = 'Y'
|
||||||
AND KEEP_IN_TRASH = 'N'
|
AND IS_KEEP_IN_TRASH = 'N'
|
||||||
THEN 'OK'
|
THEN 'OK'
|
||||||
ELSE 'ERROR'
|
ELSE 'ERROR'
|
||||||
END AS STATUS
|
END AS STATUS
|
||||||
@@ -238,8 +238,8 @@ SELECT
|
|||||||
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
ROWS_COUNT_OVER_ARCHIVE_THRESHOLD AS ROW_THR,
|
||||||
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
BYTES_SUM_OVER_ARCHIVE_THRESHOLD AS BYTE_THR,
|
||||||
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
HOURS_TO_EXPIRE_STATISTICS AS STATS_HRS,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
KEEP_IN_TRASH,
|
IS_KEEP_IN_TRASH,
|
||||||
CASE
|
CASE
|
||||||
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
WHEN ARCHIVAL_STRATEGY = 'MINIMUM_AGE_MONTHS'
|
||||||
AND MINIMUM_AGE_MONTHS = 0
|
AND MINIMUM_AGE_MONTHS = 0
|
||||||
@@ -247,8 +247,8 @@ SELECT
|
|||||||
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000
|
AND ROWS_COUNT_OVER_ARCHIVE_THRESHOLD = 20000
|
||||||
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456
|
AND BYTES_SUM_OVER_ARCHIVE_THRESHOLD = 268435456
|
||||||
AND HOURS_TO_EXPIRE_STATISTICS = 72
|
AND HOURS_TO_EXPIRE_STATISTICS = 72
|
||||||
AND ARCHIVE_ENABLED = 'Y'
|
AND IS_ARCHIVE_ENABLED = 'Y'
|
||||||
AND KEEP_IN_TRASH = 'N'
|
AND IS_KEEP_IN_TRASH = 'N'
|
||||||
THEN 'OK'
|
THEN 'OK'
|
||||||
ELSE 'ERROR'
|
ELSE 'ERROR'
|
||||||
END AS STATUS
|
END AS STATUS
|
||||||
@@ -271,8 +271,8 @@ SELECT
|
|||||||
SUM(CASE WHEN ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_ROWS_THRESHOLD,
|
SUM(CASE WHEN ROWS_COUNT_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_ROWS_THRESHOLD,
|
||||||
SUM(CASE WHEN BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_BYTES_THRESHOLD,
|
SUM(CASE WHEN BYTES_SUM_OVER_ARCHIVE_THRESHOLD IS NOT NULL THEN 1 ELSE 0 END) AS WITH_BYTES_THRESHOLD,
|
||||||
SUM(CASE WHEN HOURS_TO_EXPIRE_STATISTICS IS NOT NULL THEN 1 ELSE 0 END) AS WITH_STATS_EXPIRY,
|
SUM(CASE WHEN HOURS_TO_EXPIRE_STATISTICS IS NOT NULL THEN 1 ELSE 0 END) AS WITH_STATS_EXPIRY,
|
||||||
SUM(CASE WHEN ARCHIVE_ENABLED = 'Y' THEN 1 ELSE 0 END) AS ARCHIVAL_ENABLED,
|
SUM(CASE WHEN IS_ARCHIVE_ENABLED = 'Y' THEN 1 ELSE 0 END) AS ARCHIVAL_ENABLED,
|
||||||
SUM(CASE WHEN KEEP_IN_TRASH = 'N' THEN 1 ELSE 0 END) AS IMMEDIATE_DELETE
|
SUM(CASE WHEN IS_KEEP_IN_TRASH = 'N' THEN 1 ELSE 0 END) AS IMMEDIATE_DELETE
|
||||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
AND ((A_SOURCE_KEY = 'LM' AND TABLE_ID LIKE 'LM_%')
|
AND ((A_SOURCE_KEY = 'LM' AND TABLE_ID LIKE 'LM_%')
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- MARS-828: Rollback archival strategy columns
|
-- MARS-828: Rollback archival strategy columns
|
||||||
-- Author: Grzegorz Michalski
|
-- Author: Grzegorz Michalski
|
||||||
-- Date: 2026-01-27
|
-- Date: 2026-01-27
|
||||||
-- Description: Remove ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, ARCHIVE_ENABLED, and KEEP_IN_TRASH columns
|
-- Description: Remove ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, IS_ARCHIVE_ENABLED, and IS_KEEP_IN_TRASH columns
|
||||||
|
|
||||||
PROMPT ========================================
|
PROMPT ========================================
|
||||||
PROMPT MARS-828: Removing archival strategy and config columns
|
PROMPT MARS-828: Removing archival strategy and config columns
|
||||||
@@ -12,17 +12,17 @@ ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG
|
|||||||
DROP CONSTRAINT CHK_ARCHIVAL_STRATEGY;
|
DROP CONSTRAINT CHK_ARCHIVAL_STRATEGY;
|
||||||
|
|
||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||||
DROP CONSTRAINT CHK_ARCHIVE_ENABLED;
|
DROP CONSTRAINT CHK_IS_ARCHIVE_ENABLED;
|
||||||
|
|
||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||||
DROP CONSTRAINT CHK_KEEP_IN_TRASH;
|
DROP CONSTRAINT CHK_IS_KEEP_IN_TRASH;
|
||||||
|
|
||||||
-- Drop columns
|
-- Drop columns
|
||||||
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG DROP (
|
ALTER TABLE CT_MRDS.A_SOURCE_FILE_CONFIG DROP (
|
||||||
ARCHIVAL_STRATEGY,
|
ARCHIVAL_STRATEGY,
|
||||||
MINIMUM_AGE_MONTHS,
|
MINIMUM_AGE_MONTHS,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
KEEP_IN_TRASH
|
IS_KEEP_IN_TRASH
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Verify columns dropped
|
-- Verify columns dropped
|
||||||
@@ -31,7 +31,7 @@ SELECT
|
|||||||
FROM all_tab_columns
|
FROM all_tab_columns
|
||||||
WHERE owner = 'CT_MRDS'
|
WHERE owner = 'CT_MRDS'
|
||||||
AND table_name = 'A_SOURCE_FILE_CONFIG'
|
AND table_name = 'A_SOURCE_FILE_CONFIG'
|
||||||
AND column_name IN ('ARCHIVAL_STRATEGY', 'MINIMUM_AGE_MONTHS', 'ARCHIVE_ENABLED', 'KEEP_IN_TRASH');
|
AND column_name IN ('ARCHIVAL_STRATEGY', 'MINIMUM_AGE_MONTHS', 'IS_ARCHIVE_ENABLED', 'IS_KEEP_IN_TRASH');
|
||||||
|
|
||||||
PROMPT ========================================
|
PROMPT ========================================
|
||||||
PROMPT Archival strategy and config columns removed successfully
|
PROMPT Archival strategy and config columns removed successfully
|
||||||
|
|||||||
@@ -116,9 +116,9 @@ PROMPT Installation Summary:
|
|||||||
PROMPT - Package: CT_MRDS.FILE_ARCHIVER
|
PROMPT - Package: CT_MRDS.FILE_ARCHIVER
|
||||||
PROMPT - Version: 3.3.0 (includes selective archiving and config-based TRASH policy)
|
PROMPT - Version: 3.3.0 (includes selective archiving and config-based TRASH policy)
|
||||||
PROMPT - Strategies: THRESHOLD_BASED (default), MINIMUM_AGE_MONTHS (0=current month), HYBRID
|
PROMPT - Strategies: THRESHOLD_BASED (default), MINIMUM_AGE_MONTHS (0=current month), HYBRID
|
||||||
PROMPT - Selective Archiving: ARCHIVE_ENABLED column (Y=archive, N=skip)
|
PROMPT - Selective Archiving: IS_ARCHIVE_ENABLED column (Y=archive, N=skip)
|
||||||
PROMPT - TRASH Policy: KEEP_IN_TRASH column (Y=keep files, N=delete immediately)
|
PROMPT - TRASH Policy: IS_KEEP_IN_TRASH column (Y=keep files, N=delete immediately)
|
||||||
PROMPT * Default: ARCHIVE_ENABLED='Y', KEEP_IN_TRASH='N' (archiving enabled, immediate deletion)
|
PROMPT * Default: IS_ARCHIVE_ENABLED='Y', IS_KEEP_IN_TRASH='N' (archiving enabled, immediate deletion)
|
||||||
PROMPT * TRASH is a subfolder in DATA bucket (e.g., TRASH/LM/TABLE_NAME)
|
PROMPT * TRASH is a subfolder in DATA bucket (e.g., TRASH/LM/TABLE_NAME)
|
||||||
PROMPT * No more pKeepInTrash parameter - policy from config only
|
PROMPT * No more pKeepInTrash parameter - policy from config only
|
||||||
PROMPT - New Procedure: ARCHIVE_ALL_FOR_SOURCE(pSourceKey) for batch processing
|
PROMPT - New Procedure: ARCHIVE_ALL_FOR_SOURCE(pSourceKey) for batch processing
|
||||||
|
|||||||
@@ -25,11 +25,11 @@ CREATE TABLE CT_MRDS.A_SOURCE_FILE_CONFIG (
|
|||||||
ARCHIVAL_STRATEGY VARCHAR2(50),
|
ARCHIVAL_STRATEGY VARCHAR2(50),
|
||||||
MINIMUM_AGE_MONTHS NUMBER(3,0),
|
MINIMUM_AGE_MONTHS NUMBER(3,0),
|
||||||
ENCODING VARCHAR2(50) DEFAULT 'UTF8',
|
ENCODING VARCHAR2(50) DEFAULT 'UTF8',
|
||||||
ARCHIVE_ENABLED CHAR(1) DEFAULT 'N' NOT NULL,
|
IS_ARCHIVE_ENABLED CHAR(1) DEFAULT 'N' NOT NULL,
|
||||||
KEEP_IN_TRASH CHAR(1) DEFAULT 'N' NOT NULL,
|
IS_KEEP_IN_TRASH CHAR(1) DEFAULT 'N' NOT NULL,
|
||||||
CONSTRAINT A_SOURCE_FILE_CONFIG_PK PRIMARY KEY (A_SOURCE_FILE_CONFIG_KEY),
|
CONSTRAINT A_SOURCE_FILE_CONFIG_PK PRIMARY KEY (A_SOURCE_FILE_CONFIG_KEY),
|
||||||
CONSTRAINT CHK_ARCHIVE_ENABLED CHECK (ARCHIVE_ENABLED IN ('Y', 'N')),
|
CONSTRAINT CHK_IS_ARCHIVE_ENABLED CHECK (IS_ARCHIVE_ENABLED IN ('Y', 'N')),
|
||||||
CONSTRAINT CHK_KEEP_IN_TRASH CHECK (KEEP_IN_TRASH IN ('Y', 'N')),
|
CONSTRAINT CHK_IS_KEEP_IN_TRASH CHECK (IS_KEEP_IN_TRASH IN ('Y', 'N')),
|
||||||
CONSTRAINT SOURCE_FILE_TYPE_CHK CHECK (SOURCE_FILE_TYPE IN ('INPUT', 'CONTAINER', 'LOAD_CONFIG')),
|
CONSTRAINT SOURCE_FILE_TYPE_CHK CHECK (SOURCE_FILE_TYPE IN ('INPUT', 'CONTAINER', 'LOAD_CONFIG')),
|
||||||
CONSTRAINT ASFC_A_SOURCE_KEY_FK FOREIGN KEY(A_SOURCE_KEY) REFERENCES CT_MRDS.A_SOURCE(A_SOURCE_KEY),
|
CONSTRAINT ASFC_A_SOURCE_KEY_FK FOREIGN KEY(A_SOURCE_KEY) REFERENCES CT_MRDS.A_SOURCE(A_SOURCE_KEY),
|
||||||
CONSTRAINT ASFC_CONTAINER_FILE_KEY_FK FOREIGN KEY(CONTAINER_FILE_KEY) REFERENCES CT_MRDS.A_SOURCE_FILE_CONFIG(A_SOURCE_FILE_CONFIG_KEY),
|
CONSTRAINT ASFC_CONTAINER_FILE_KEY_FK FOREIGN KEY(CONTAINER_FILE_KEY) REFERENCES CT_MRDS.A_SOURCE_FILE_CONFIG(A_SOURCE_FILE_CONFIG_KEY),
|
||||||
@@ -50,7 +50,7 @@ TABLESPACE "DATA";
|
|||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVAL_STRATEGY IS 'Archival strategy: THRESHOLD_BASED, CURRENT_MONTH_ONLY, MINIMUM_AGE_MONTHS, HYBRID. Added in MARS-828';
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVAL_STRATEGY IS 'Archival strategy: THRESHOLD_BASED, CURRENT_MONTH_ONLY, MINIMUM_AGE_MONTHS, HYBRID. Added in MARS-828';
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.MINIMUM_AGE_MONTHS IS 'Minimum age in months before archival (required for MINIMUM_AGE_MONTHS strategy). Added in MARS-828';
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.MINIMUM_AGE_MONTHS IS 'Minimum age in months before archival (required for MINIMUM_AGE_MONTHS strategy). Added in MARS-828';
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ENCODING IS 'Oracle character set name for CSV files (e.g., UTF8, WE8MSWIN1252, EE8ISO8859P2). Added in MARS-1049';
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ENCODING IS 'Oracle character set name for CSV files (e.g., UTF8, WE8MSWIN1252, EE8ISO8859P2). Added in MARS-1049';
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.ARCHIVE_ENABLED IS 'Y=Enable archiving, N=Skip archiving. Controls if table participates in archival process. Added in MARS-828 v3.3.0';
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.IS_ARCHIVE_ENABLED IS 'Y=Enable archiving, N=Skip archiving. Controls if table participates in archival process. Added in MARS-828 v3.3.0';
|
||||||
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.KEEP_IN_TRASH IS 'Y=Keep files in TRASH after archiving, N=Delete immediately. Controls TRASH retention policy. Added in MARS-828 v3.3.0';
|
COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_CONFIG.IS_KEEP_IN_TRASH IS 'Y=Keep files in TRASH after archiving, N=Delete immediately. Controls TRASH retention policy. Added in MARS-828 v3.3.0';
|
||||||
|
|
||||||
GRANT SELECT, INSERT, UPDATE, DELETE ON CT_MRDS.A_SOURCE_FILE_CONFIG TO MRDS_LOADER_ROLE;
|
GRANT SELECT, INSERT, UPDATE, DELETE ON CT_MRDS.A_SOURCE_FILE_CONFIG TO MRDS_LOADER_ROLE;
|
||||||
@@ -113,15 +113,15 @@ AS
|
|||||||
vSourceFileConfig := CT_MRDS.FILE_MANAGER.GET_SOURCE_FILE_CONFIG(pSourceFileConfigKey => pSourceFileConfigKey);
|
vSourceFileConfig := CT_MRDS.FILE_MANAGER.GET_SOURCE_FILE_CONFIG(pSourceFileConfigKey => pSourceFileConfigKey);
|
||||||
|
|
||||||
-- Check if archiving is enabled for this configuration
|
-- Check if archiving is enabled for this configuration
|
||||||
IF vSourceFileConfig.ARCHIVE_ENABLED = 'N' THEN
|
IF vSourceFileConfig.IS_ARCHIVE_ENABLED = 'N' THEN
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Archiving disabled for this configuration (ARCHIVE_ENABLED=N). Skipping.', 'WARNING', vParameters);
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Archiving disabled for this configuration (IS_ARCHIVE_ENABLED=N). Skipping.', 'WARNING', vParameters);
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('End','INFO',vParameters);
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('End','INFO',vParameters);
|
||||||
RETURN;
|
RETURN;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Get TRASH policy from configuration
|
-- Get TRASH policy from configuration
|
||||||
vKeepInTrash := (vSourceFileConfig.KEEP_IN_TRASH = 'Y');
|
vKeepInTrash := (vSourceFileConfig.IS_KEEP_IN_TRASH = 'Y');
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('TRASH policy from config: KEEP_IN_TRASH=' || vSourceFileConfig.KEEP_IN_TRASH, 'INFO', vParameters);
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('TRASH policy from config: IS_KEEP_IN_TRASH=' || vSourceFileConfig.IS_KEEP_IN_TRASH, 'INFO', vParameters);
|
||||||
|
|
||||||
vTableStat := GET_TABLE_STAT(pSourceFileConfigKey => pSourceFileConfigKey);
|
vTableStat := GET_TABLE_STAT(pSourceFileConfigKey => pSourceFileConfigKey);
|
||||||
|
|
||||||
@@ -296,10 +296,10 @@ AS
|
|||||||
AND r.source_file_name = f.filename
|
AND r.source_file_name = f.filename
|
||||||
AND r.PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
|
AND r.PROCESSING_STATUS = 'ARCHIVED_AND_TRASHED';
|
||||||
END LOOP;
|
END LOOP;
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('All archived files removed from TRASH folder and marked as ARCHIVED_AND_PURGED (config: KEEP_IN_TRASH=N).','INFO');
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('All archived files removed from TRASH folder and marked as ARCHIVED_AND_PURGED (config: IS_KEEP_IN_TRASH=N).','INFO');
|
||||||
ELSE
|
ELSE
|
||||||
-- Keep files in TRASH folder (status remains ARCHIVED_AND_TRASHED)
|
-- Keep files in TRASH folder (status remains ARCHIVED_AND_TRASHED)
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Archived files kept in TRASH folder for retention (config: KEEP_IN_TRASH=Y, status: ARCHIVED_AND_TRASHED).','INFO');
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Archived files kept in TRASH folder for retention (config: IS_KEEP_IN_TRASH=Y, status: ARCHIVED_AND_TRASHED).','INFO');
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
--ROLLBACK PART
|
--ROLLBACK PART
|
||||||
@@ -1041,8 +1041,8 @@ AS
|
|||||||
SELECT
|
SELECT
|
||||||
A_SOURCE_FILE_CONFIG_KEY,
|
A_SOURCE_FILE_CONFIG_KEY,
|
||||||
TABLE_ID,
|
TABLE_ID,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
KEEP_IN_TRASH,
|
IS_KEEP_IN_TRASH,
|
||||||
A_SOURCE_KEY
|
A_SOURCE_KEY
|
||||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
@@ -1058,16 +1058,16 @@ AS
|
|||||||
)
|
)
|
||||||
ORDER BY A_SOURCE_KEY, A_SOURCE_FILE_CONFIG_KEY
|
ORDER BY A_SOURCE_KEY, A_SOURCE_FILE_CONFIG_KEY
|
||||||
) LOOP
|
) LOOP
|
||||||
IF config_rec.ARCHIVE_ENABLED = 'N' THEN
|
IF config_rec.IS_ARCHIVE_ENABLED = 'N' THEN
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
||||||
'Skipping table ' || config_rec.TABLE_ID || ' (ARCHIVE_ENABLED=N) [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ']',
|
'Skipping table ' || config_rec.TABLE_ID || ' (IS_ARCHIVE_ENABLED=N) [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ']',
|
||||||
'INFO'
|
'INFO'
|
||||||
);
|
);
|
||||||
vTablesSkipped := vTablesSkipped + 1;
|
vTablesSkipped := vTablesSkipped + 1;
|
||||||
ELSE
|
ELSE
|
||||||
BEGIN
|
BEGIN
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
||||||
'Archiving table ' || config_rec.TABLE_ID || ' [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ', KEEP_IN_TRASH=' || config_rec.KEEP_IN_TRASH || ']',
|
'Archiving table ' || config_rec.TABLE_ID || ' [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ', IS_KEEP_IN_TRASH=' || config_rec.IS_KEEP_IN_TRASH || ']',
|
||||||
'INFO'
|
'INFO'
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -1174,14 +1174,14 @@ AS
|
|||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
-- Set enabled filter info
|
-- Set enabled filter info
|
||||||
vEnabledFilter := CASE WHEN pOnlyEnabled THEN 'ARCHIVE_ENABLED=Y only' ELSE 'All tables' END;
|
vEnabledFilter := CASE WHEN pOnlyEnabled THEN 'IS_ARCHIVE_ENABLED=Y only' ELSE 'All tables' END;
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Filter mode: ' || vEnabledFilter, 'INFO');
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT('Filter mode: ' || vEnabledFilter, 'INFO');
|
||||||
|
|
||||||
FOR config_rec IN (
|
FOR config_rec IN (
|
||||||
SELECT
|
SELECT
|
||||||
A_SOURCE_FILE_CONFIG_KEY,
|
A_SOURCE_FILE_CONFIG_KEY,
|
||||||
TABLE_ID,
|
TABLE_ID,
|
||||||
ARCHIVE_ENABLED,
|
IS_ARCHIVE_ENABLED,
|
||||||
A_SOURCE_KEY
|
A_SOURCE_KEY
|
||||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||||
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
WHERE SOURCE_FILE_TYPE = 'INPUT'
|
||||||
@@ -1195,20 +1195,20 @@ AS
|
|||||||
-- Level 3: All configs when pGatherAll = TRUE
|
-- Level 3: All configs when pGatherAll = TRUE
|
||||||
(pSourceFileConfigKey IS NULL AND pSourceKey IS NULL AND pGatherAll = TRUE)
|
(pSourceFileConfigKey IS NULL AND pSourceKey IS NULL AND pGatherAll = TRUE)
|
||||||
)
|
)
|
||||||
-- Apply ARCHIVE_ENABLED filter if pOnlyEnabled = TRUE
|
-- Apply IS_ARCHIVE_ENABLED filter if pOnlyEnabled = TRUE
|
||||||
AND (pOnlyEnabled = FALSE OR ARCHIVE_ENABLED = 'Y')
|
AND (pOnlyEnabled = FALSE OR IS_ARCHIVE_ENABLED = 'Y')
|
||||||
ORDER BY A_SOURCE_KEY, A_SOURCE_FILE_CONFIG_KEY
|
ORDER BY A_SOURCE_KEY, A_SOURCE_FILE_CONFIG_KEY
|
||||||
) LOOP
|
) LOOP
|
||||||
IF pOnlyEnabled AND config_rec.ARCHIVE_ENABLED = 'N' THEN
|
IF pOnlyEnabled AND config_rec.IS_ARCHIVE_ENABLED = 'N' THEN
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
||||||
'Skipping table ' || config_rec.TABLE_ID || ' (ARCHIVE_ENABLED=N) [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ']',
|
'Skipping table ' || config_rec.TABLE_ID || ' (IS_ARCHIVE_ENABLED=N) [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ']',
|
||||||
'INFO'
|
'INFO'
|
||||||
);
|
);
|
||||||
vTablesSkipped := vTablesSkipped + 1;
|
vTablesSkipped := vTablesSkipped + 1;
|
||||||
ELSE
|
ELSE
|
||||||
BEGIN
|
BEGIN
|
||||||
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
CT_MRDS.ENV_MANAGER.LOG_PROCESS_EVENT(
|
||||||
'Gathering statistics for table ' || config_rec.TABLE_ID || ' [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ', ARCHIVE_ENABLED=' || config_rec.ARCHIVE_ENABLED || ']',
|
'Gathering statistics for table ' || config_rec.TABLE_ID || ' [Source: ' || config_rec.A_SOURCE_KEY || ', Config: ' || config_rec.A_SOURCE_FILE_CONFIG_KEY || ', IS_ARCHIVE_ENABLED=' || config_rec.IS_ARCHIVE_ENABLED || ']',
|
||||||
'INFO'
|
'INFO'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -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.0 (2026-02-11): Added ARCHIVE_ENABLED and 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) ||
|
||||||
'3.1.2 (2026-02-06): Fixed missing PARTITION_YEAR/PARTITION_MONTH assignments in UPDATE statement and export query circular dependency (now filters by workflow_start instead of partition fields)' || CHR(13)||CHR(10) ||
|
'3.1.2 (2026-02-06): Fixed missing PARTITION_YEAR/PARTITION_MONTH assignments in UPDATE statement and export query circular dependency (now filters by workflow_start instead of partition fields)' || CHR(13)||CHR(10) ||
|
||||||
@@ -51,7 +51,7 @@ AS
|
|||||||
* @desc Wrapper procedure for DBMS_CLOUD.EXPORT_DATA.
|
* @desc Wrapper procedure for DBMS_CLOUD.EXPORT_DATA.
|
||||||
* Exports data from table specified by pSourceFileConfigKey(A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY) into PARQUET file on OCI infrustructure.
|
* Exports data from table specified by pSourceFileConfigKey(A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY) into PARQUET file on OCI infrustructure.
|
||||||
* Each YEAR_MONTH pair goes to seperate file (implicit partitioning).
|
* Each YEAR_MONTH pair goes to seperate file (implicit partitioning).
|
||||||
* TRASH policy is controlled by A_SOURCE_FILE_CONFIG.KEEP_IN_TRASH column ('Y'=keep in TRASH, 'N'=delete immediately).
|
* TRASH policy is controlled by A_SOURCE_FILE_CONFIG.IS_KEEP_IN_TRASH column ('Y'=keep in TRASH, 'N'=delete immediately).
|
||||||
**/
|
**/
|
||||||
PROCEDURE ARCHIVE_TABLE_DATA (
|
PROCEDURE ARCHIVE_TABLE_DATA (
|
||||||
pSourceFileConfigKey IN CT_MRDS.A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY%TYPE
|
pSourceFileConfigKey IN CT_MRDS.A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY%TYPE
|
||||||
@@ -62,7 +62,7 @@ AS
|
|||||||
* @desc Function wrapper for ARCHIVE_TABLE_DATA procedure.
|
* @desc Function wrapper for ARCHIVE_TABLE_DATA procedure.
|
||||||
* Returns SQLCODE for Python library integration.
|
* Returns SQLCODE for Python library integration.
|
||||||
* Calls the main ARCHIVE_TABLE_DATA procedure and captures execution result.
|
* Calls the main ARCHIVE_TABLE_DATA procedure and captures execution result.
|
||||||
* TRASH policy is controlled by A_SOURCE_FILE_CONFIG.KEEP_IN_TRASH column ('Y'=keep in TRASH, 'N'=delete immediately).
|
* TRASH policy is controlled by A_SOURCE_FILE_CONFIG.IS_KEEP_IN_TRASH column ('Y'=keep in TRASH, 'N'=delete immediately).
|
||||||
* @example SELECT FILE_ARCHIVER.FN_ARCHIVE_TABLE_DATA(pSourceFileConfigKey => 123) FROM DUAL;
|
* @example SELECT FILE_ARCHIVER.FN_ARCHIVE_TABLE_DATA(pSourceFileConfigKey => 123) FROM DUAL;
|
||||||
* @ex_rslt 0 (success) or error code
|
* @ex_rslt 0 (success) or error code
|
||||||
**/
|
**/
|
||||||
@@ -96,16 +96,16 @@ AS
|
|||||||
/**
|
/**
|
||||||
* @name GATHER_TABLE_STAT_ALL
|
* @name GATHER_TABLE_STAT_ALL
|
||||||
* @desc Multi-level batch statistics gathering procedure with three granularity levels.
|
* @desc Multi-level batch statistics gathering procedure with three granularity levels.
|
||||||
* Processes configurations based on ARCHIVE_ENABLED setting (when pOnlyEnabled=TRUE).
|
* Processes configurations based on IS_ARCHIVE_ENABLED setting (when pOnlyEnabled=TRUE).
|
||||||
* Gathers statistics for external tables and inserts data into A_TABLE_STAT and A_TABLE_STAT_HIST.
|
* Gathers statistics for external tables and inserts data into A_TABLE_STAT and A_TABLE_STAT_HIST.
|
||||||
* @param pSourceFileConfigKey - (LEVEL 1) Gather stats for specific configuration key (highest priority)
|
* @param pSourceFileConfigKey - (LEVEL 1) Gather stats for specific configuration key (highest priority)
|
||||||
* @param pSourceKey - (LEVEL 2) Gather stats for all tables in source system (e.g., 'LM', 'C2D') (medium priority)
|
* @param pSourceKey - (LEVEL 2) Gather stats for all tables in source system (e.g., 'LM', 'C2D') (medium priority)
|
||||||
* @param pGatherAll - (LEVEL 3) When TRUE, gather stats for ALL tables across all sources (lowest priority)
|
* @param pGatherAll - (LEVEL 3) When TRUE, gather stats for ALL tables across all sources (lowest priority)
|
||||||
* @param pOnlyEnabled - When TRUE (default), only process tables with ARCHIVE_ENABLED='Y'
|
* @param pOnlyEnabled - When TRUE (default), only process tables with IS_ARCHIVE_ENABLED='Y'
|
||||||
* @example -- Level 1: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pSourceFileConfigKey => 123);
|
* @example -- Level 1: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pSourceFileConfigKey => 123);
|
||||||
* @example -- Level 2: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pSourceKey => 'LM');
|
* @example -- Level 2: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pSourceKey => 'LM');
|
||||||
* @example -- Level 3: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pGatherAll => TRUE);
|
* @example -- Level 3: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pGatherAll => TRUE);
|
||||||
* @example -- All tables regardless of ARCHIVE_ENABLED: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pGatherAll => TRUE, pOnlyEnabled => FALSE);
|
* @example -- All tables regardless of IS_ARCHIVE_ENABLED: CALL FILE_ARCHIVER.GATHER_TABLE_STAT_ALL(pGatherAll => TRUE, pOnlyEnabled => FALSE);
|
||||||
**/
|
**/
|
||||||
PROCEDURE GATHER_TABLE_STAT_ALL (
|
PROCEDURE GATHER_TABLE_STAT_ALL (
|
||||||
pSourceFileConfigKey IN CT_MRDS.A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY%TYPE DEFAULT NULL,
|
pSourceFileConfigKey IN CT_MRDS.A_SOURCE_FILE_CONFIG.A_SOURCE_FILE_CONFIG_KEY%TYPE DEFAULT NULL,
|
||||||
@@ -122,7 +122,7 @@ AS
|
|||||||
* @param pSourceFileConfigKey - (LEVEL 1) Gather stats for specific configuration key (highest priority)
|
* @param pSourceFileConfigKey - (LEVEL 1) Gather stats for specific configuration key (highest priority)
|
||||||
* @param pSourceKey - (LEVEL 2) Gather stats for all tables in source system (medium priority)
|
* @param pSourceKey - (LEVEL 2) Gather stats for all tables in source system (medium priority)
|
||||||
* @param pGatherAll - (LEVEL 3) When TRUE, gather stats for ALL tables across all sources (lowest priority)
|
* @param pGatherAll - (LEVEL 3) When TRUE, gather stats for ALL tables across all sources (lowest priority)
|
||||||
* @param pOnlyEnabled - When TRUE (default), only process tables with ARCHIVE_ENABLED='Y'
|
* @param pOnlyEnabled - When TRUE (default), only process tables with IS_ARCHIVE_ENABLED='Y'
|
||||||
* @example SELECT FILE_ARCHIVER.FN_GATHER_TABLE_STAT_ALL(pSourceKey => 'LM') FROM DUAL;
|
* @example SELECT FILE_ARCHIVER.FN_GATHER_TABLE_STAT_ALL(pSourceKey => 'LM') FROM DUAL;
|
||||||
* @ex_rslt 0 (success) or error code
|
* @ex_rslt 0 (success) or error code
|
||||||
**/
|
**/
|
||||||
@@ -136,8 +136,8 @@ AS
|
|||||||
/**
|
/**
|
||||||
* @name ARCHIVE_ALL
|
* @name ARCHIVE_ALL
|
||||||
* @desc Multi-level batch archival procedure with three granularity levels.
|
* @desc Multi-level batch archival procedure with three granularity levels.
|
||||||
* Only processes configurations where ARCHIVE_ENABLED='Y'.
|
* Only processes configurations where IS_ARCHIVE_ENABLED='Y'.
|
||||||
* TRASH policy for each table is controlled by individual KEEP_IN_TRASH column.
|
* TRASH policy for each table is controlled by individual IS_KEEP_IN_TRASH column.
|
||||||
* @param pSourceFileConfigKey - (LEVEL 1) Archive specific configuration key (highest priority)
|
* @param pSourceFileConfigKey - (LEVEL 1) Archive specific configuration key (highest priority)
|
||||||
* @param pSourceKey - (LEVEL 2) Archive all enabled tables for source system (e.g., 'LM', 'C2D') (medium priority)
|
* @param pSourceKey - (LEVEL 2) Archive all enabled tables for source system (e.g., 'LM', 'C2D') (medium priority)
|
||||||
* @param pArchiveAll - (LEVEL 3) When TRUE, archive ALL enabled tables across all sources (lowest priority)
|
* @param pArchiveAll - (LEVEL 3) When TRUE, archive ALL enabled tables across all sources (lowest priority)
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ PROMPT Rollback steps:
|
|||||||
PROMPT 1. Rollback TRASH retention statuses
|
PROMPT 1. Rollback TRASH retention statuses
|
||||||
PROMPT 2. Revoke T_FILENAME privileges
|
PROMPT 2. Revoke T_FILENAME privileges
|
||||||
PROMPT 3. Remove validation trigger
|
PROMPT 3. Remove validation trigger
|
||||||
PROMPT 4. Drop all configuration columns (ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, ARCHIVE_ENABLED, KEEP_IN_TRASH)
|
PROMPT 4. Drop all configuration columns (ARCHIVAL_STRATEGY, MINIMUM_AGE_MONTHS, IS_ARCHIVE_ENABLED, IS_KEEP_IN_TRASH)
|
||||||
PROMPT 5. Restore FILE_ARCHIVER package to v2.0.0
|
PROMPT 5. Restore FILE_ARCHIVER package to v2.0.0
|
||||||
PROMPT 6. Revert all archival strategies to THRESHOLD_BASED
|
PROMPT 6. Revert all archival strategies to THRESHOLD_BASED
|
||||||
PROMPT
|
PROMPT
|
||||||
|
|||||||
Reference in New Issue
Block a user