Add MARS-835-PREHOOK scripts to update and rollback A_SOURCE_FILE_RECEIVED table structure
This commit is contained in:
@@ -0,0 +1,70 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- MARS-835-PREHOOK: Update A_SOURCE_FILE_RECEIVED Table Structure
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose:
|
||||||
|
-- 1. Rename column ARCH_FILE_NAME to ARCH_PATH
|
||||||
|
-- 2. Add new column PROCESS_NAME VARCHAR2(200)
|
||||||
|
-- Author: System Generated
|
||||||
|
-- Date: 2026-02-13
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||||
|
SET TIMING ON
|
||||||
|
|
||||||
|
PROMPT ====================================================================
|
||||||
|
PROMPT MARS-835-PREHOOK: Updating A_SOURCE_FILE_RECEIVED table structure
|
||||||
|
PROMPT ====================================================================
|
||||||
|
|
||||||
|
-- Check if column ARCH_FILE_NAME exists
|
||||||
|
DECLARE
|
||||||
|
v_column_exists NUMBER;
|
||||||
|
v_process_name_exists NUMBER;
|
||||||
|
BEGIN
|
||||||
|
-- Check if ARCH_FILE_NAME exists
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_column_exists
|
||||||
|
FROM dba_tab_columns
|
||||||
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND table_name = 'A_SOURCE_FILE_RECEIVED'
|
||||||
|
AND column_name = 'ARCH_FILE_NAME';
|
||||||
|
|
||||||
|
IF v_column_exists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Renaming column ARCH_FILE_NAME to ARCH_PATH...');
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED RENAME COLUMN ARCH_FILE_NAME TO ARCH_PATH';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: Column renamed to ARCH_PATH');
|
||||||
|
ELSE
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Column ARCH_FILE_NAME does not exist (already renamed or first install)');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Check if PROCESS_NAME already exists
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_process_name_exists
|
||||||
|
FROM dba_tab_columns
|
||||||
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND table_name = 'A_SOURCE_FILE_RECEIVED'
|
||||||
|
AND column_name = 'PROCESS_NAME';
|
||||||
|
|
||||||
|
IF v_process_name_exists = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Adding new column PROCESS_NAME...');
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED ADD (PROCESS_NAME VARCHAR2(200))';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: Column PROCESS_NAME added');
|
||||||
|
|
||||||
|
-- Add comment on new column
|
||||||
|
EXECUTE IMMEDIATE 'COMMENT ON COLUMN CT_MRDS.A_SOURCE_FILE_RECEIVED.PROCESS_NAME IS ''Name of the process that created this record''';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: Comment added to PROCESS_NAME column');
|
||||||
|
ELSE
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Column PROCESS_NAME already exists');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: A_SOURCE_FILE_RECEIVED table structure updated successfully');
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR: Failed to update table structure: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT ====================================================================
|
||||||
|
PROMPT A_SOURCE_FILE_RECEIVED Table Update Completed
|
||||||
|
PROMPT ====================================================================
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- MARS-835-PREHOOK ROLLBACK: Revert A_SOURCE_FILE_RECEIVED Table Structure
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose:
|
||||||
|
-- 1. Rename column ARCH_PATH back to ARCH_FILE_NAME
|
||||||
|
-- 2. Remove column PROCESS_NAME
|
||||||
|
-- Author: System Generated
|
||||||
|
-- Date: 2026-02-13
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON SIZE UNLIMITED
|
||||||
|
SET TIMING ON
|
||||||
|
|
||||||
|
PROMPT ====================================================================
|
||||||
|
PROMPT MARS-835-PREHOOK ROLLBACK: Reverting A_SOURCE_FILE_RECEIVED table
|
||||||
|
PROMPT ====================================================================
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
v_column_exists NUMBER;
|
||||||
|
v_process_name_exists NUMBER;
|
||||||
|
BEGIN
|
||||||
|
-- Check if ARCH_PATH exists (needs to be renamed back)
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_column_exists
|
||||||
|
FROM dba_tab_columns
|
||||||
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND table_name = 'A_SOURCE_FILE_RECEIVED'
|
||||||
|
AND column_name = 'ARCH_PATH';
|
||||||
|
|
||||||
|
IF v_column_exists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Renaming column ARCH_PATH back to ARCH_FILE_NAME...');
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED RENAME COLUMN ARCH_PATH TO ARCH_FILE_NAME';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: Column renamed back to ARCH_FILE_NAME');
|
||||||
|
ELSE
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Column ARCH_PATH does not exist (already rolled back)');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
-- Check if PROCESS_NAME exists (needs to be dropped)
|
||||||
|
SELECT COUNT(*)
|
||||||
|
INTO v_process_name_exists
|
||||||
|
FROM dba_tab_columns
|
||||||
|
WHERE owner = 'CT_MRDS'
|
||||||
|
AND table_name = 'A_SOURCE_FILE_RECEIVED'
|
||||||
|
AND column_name = 'PROCESS_NAME';
|
||||||
|
|
||||||
|
IF v_process_name_exists > 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Dropping column PROCESS_NAME...');
|
||||||
|
EXECUTE IMMEDIATE 'ALTER TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED DROP COLUMN PROCESS_NAME';
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: Column PROCESS_NAME dropped');
|
||||||
|
ELSE
|
||||||
|
DBMS_OUTPUT.PUT_LINE('INFO: Column PROCESS_NAME does not exist (already rolled back)');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: A_SOURCE_FILE_RECEIVED table structure rollback completed');
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ERROR: Failed to rollback table structure: ' || SQLERRM);
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
|
PROMPT ====================================================================
|
||||||
|
PROMPT A_SOURCE_FILE_RECEIVED Table Rollback Completed
|
||||||
|
PROMPT ====================================================================
|
||||||
@@ -31,6 +31,7 @@ PROMPT =========================================================================
|
|||||||
PROMPT
|
PROMPT
|
||||||
PROMPT This script will:
|
PROMPT This script will:
|
||||||
PROMPT - Create A_PARALLEL_EXPORT_CHUNKS table with unique timestamp task names
|
PROMPT - Create A_PARALLEL_EXPORT_CHUNKS table with unique timestamp task names
|
||||||
|
PROMPT - Update A_SOURCE_FILE_RECEIVED table (rename ARCH_FILE_NAME to ARCH_PATH, add PROCESS_NAME column)
|
||||||
PROMPT - Update ENV_MANAGER to v3.2.0 (add parallel execution error codes)
|
PROMPT - Update ENV_MANAGER to v3.2.0 (add parallel execution error codes)
|
||||||
PROMPT - Update DATA_EXPORTER to v2.4.0 (DBMS_PARALLEL_EXECUTE + Smart Column Mapping)
|
PROMPT - Update DATA_EXPORTER to v2.4.0 (DBMS_PARALLEL_EXECUTE + Smart Column Mapping)
|
||||||
PROMPT - Add pParallelDegree parameter (1-16 threads) to EXPORT_*_BY_DATE procedures
|
PROMPT - Add pParallelDegree parameter (1-16 threads) to EXPORT_*_BY_DATE procedures
|
||||||
@@ -71,13 +72,19 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 4: Track Package Versions
|
PROMPT Step 4: Update A_SOURCE_FILE_RECEIVED Table Structure
|
||||||
|
PROMPT =========================================================================
|
||||||
|
@@03_MARS_835_PREHOOK_update_SOURCE_FILE_RECEIVED_table.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT =========================================================================
|
||||||
|
PROMPT Step 5: Track Package Versions
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@track_package_versions.sql
|
@@track_package_versions.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 5: Verify Package Versions
|
PROMPT Step 6: Verify Package Versions
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@verify_packages_version.sql
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- A_SOURCE_FILE_RECEIVED Table
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose: Track received files and their processing status
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
CREATE TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED (
|
||||||
|
A_SOURCE_FILE_RECEIVED_KEY NUMBER(38,0) NOT NULL ENABLE,
|
||||||
|
A_SOURCE_FILE_CONFIG_KEY NUMBER(38,0) NOT NULL ENABLE,
|
||||||
|
SOURCE_FILE_NAME VARCHAR2(1000) NOT NULL,
|
||||||
|
CHECKSUM VARCHAR2(128),
|
||||||
|
CREATED TIMESTAMP(6) WITH TIME ZONE,
|
||||||
|
BYTES NUMBER,
|
||||||
|
RECEPTION_DATE DATE NOT NULL,
|
||||||
|
PROCESSING_STATUS VARCHAR2(200),
|
||||||
|
EXTERNAL_TABLE_NAME VARCHAR2(200),
|
||||||
|
PARTITION_YEAR VARCHAR2(4),
|
||||||
|
PARTITION_MONTH VARCHAR2(2),
|
||||||
|
ARCH_PATH VARCHAR2(1000),
|
||||||
|
PROCESS_NAME VARCHAR2(200),
|
||||||
|
CONSTRAINT A_SOURCE_FILE_RECEIVED_PK PRIMARY KEY (A_SOURCE_FILE_RECEIVED_KEY),
|
||||||
|
CONSTRAINT ASFR_A_SOURCE_FILE_CONFIG_KEY_FK FOREIGN KEY(A_SOURCE_FILE_CONFIG_KEY) REFERENCES CT_MRDS.A_SOURCE_FILE_CONFIG(A_SOURCE_FILE_CONFIG_KEY),
|
||||||
|
CONSTRAINT A_SOURCE_FILE_RECEIVED_CHK CHECK (PROCESSING_STATUS IN ('RECEIVED', 'VALIDATED', 'READY_FOR_INGESTION', 'INGESTED', 'ARCHIVED'))
|
||||||
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
-- Unique index for file identification (workaround for TIMESTAMP WITH TIMEZONE constraint limitation)
|
||||||
|
CREATE UNIQUE INDEX CT_MRDS.A_SOURCE_FILE_RECEIVED_UK1
|
||||||
|
ON CT_MRDS.A_SOURCE_FILE_RECEIVED(CHECKSUM, CREATED, BYTES);
|
||||||
|
|
||||||
|
GRANT SELECT, INSERT, UPDATE, DELETE ON CT_MRDS.A_SOURCE_FILE_RECEIVED TO MRDS_LOADER_ROLE;
|
||||||
@@ -606,6 +606,7 @@ AS
|
|||||||
pTemplateTableName IN VARCHAR2 default NULL,
|
pTemplateTableName IN VARCHAR2 default NULL,
|
||||||
pMaxFileSize IN NUMBER default 104857600,
|
pMaxFileSize IN NUMBER default 104857600,
|
||||||
pRegisterExport IN BOOLEAN default FALSE,
|
pRegisterExport IN BOOLEAN default FALSE,
|
||||||
|
pProcessName IN VARCHAR2 default 'DATA_EXPORTER',
|
||||||
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
||||||
)
|
)
|
||||||
IS
|
IS
|
||||||
@@ -638,6 +639,7 @@ AS
|
|||||||
,'pTemplateTableName => '''||nvl(pTemplateTableName, 'NULL')||''''
|
,'pTemplateTableName => '''||nvl(pTemplateTableName, 'NULL')||''''
|
||||||
,'pMaxFileSize => '''||nvl(TO_CHAR(pMaxFileSize), 'NULL')||''''
|
,'pMaxFileSize => '''||nvl(TO_CHAR(pMaxFileSize), 'NULL')||''''
|
||||||
,'pRegisterExport => '''||CASE WHEN pRegisterExport THEN 'TRUE' ELSE 'FALSE' END||''''
|
,'pRegisterExport => '''||CASE WHEN pRegisterExport THEN 'TRUE' ELSE 'FALSE' END||''''
|
||||||
|
,'pProcessName => '''||nvl(pProcessName, 'NULL')||''''
|
||||||
,'pCredentialName => '''||nvl(pCredentialName, 'NULL')||''''
|
,'pCredentialName => '''||nvl(pCredentialName, 'NULL')||''''
|
||||||
));
|
));
|
||||||
ENV_MANAGER.LOG_PROCESS_EVENT('Start','INFO', vParameters);
|
ENV_MANAGER.LOG_PROCESS_EVENT('Start','INFO', vParameters);
|
||||||
@@ -853,7 +855,8 @@ AS
|
|||||||
PROCESSING_STATUS,
|
PROCESSING_STATUS,
|
||||||
PARTITION_YEAR,
|
PARTITION_YEAR,
|
||||||
PARTITION_MONTH,
|
PARTITION_MONTH,
|
||||||
ARCH_FILE_NAME
|
ARCH_PATH,
|
||||||
|
PROCESS_NAME
|
||||||
) VALUES (
|
) VALUES (
|
||||||
vSourceFileReceivedKey,
|
vSourceFileReceivedKey,
|
||||||
NVL(vConfigKey, -1), -- Use config key if found, otherwise -1
|
NVL(vConfigKey, -1), -- Use config key if found, otherwise -1
|
||||||
@@ -865,7 +868,8 @@ AS
|
|||||||
'INGESTED',
|
'INGESTED',
|
||||||
NULL, -- PARTITION_YEAR not used for single-file exports
|
NULL, -- PARTITION_YEAR not used for single-file exports
|
||||||
NULL, -- PARTITION_MONTH not used for single-file exports
|
NULL, -- PARTITION_MONTH not used for single-file exports
|
||||||
NULL -- ARCH_FILE_NAME not used for single-file exports
|
NULL, -- ARCH_PATH not used for single-file exports
|
||||||
|
pProcessName -- Process name from parameter
|
||||||
);
|
);
|
||||||
|
|
||||||
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vActualFileName || ', Size=' || vBytes || ' bytes', 'INFO', vParameters);
|
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vActualFileName || ', Size=' || vBytes || ' bytes', 'INFO', vParameters);
|
||||||
@@ -887,7 +891,8 @@ AS
|
|||||||
PROCESSING_STATUS,
|
PROCESSING_STATUS,
|
||||||
PARTITION_YEAR,
|
PARTITION_YEAR,
|
||||||
PARTITION_MONTH,
|
PARTITION_MONTH,
|
||||||
ARCH_FILE_NAME
|
ARCH_PATH,
|
||||||
|
PROCESS_NAME
|
||||||
) VALUES (
|
) VALUES (
|
||||||
vSourceFileReceivedKey,
|
vSourceFileReceivedKey,
|
||||||
NVL(vConfigKey, -1), -- Use config key if found, otherwise -1
|
NVL(vConfigKey, -1), -- Use config key if found, otherwise -1
|
||||||
@@ -896,7 +901,8 @@ AS
|
|||||||
'INGESTED',
|
'INGESTED',
|
||||||
NULL, -- PARTITION_YEAR not used for single-file exports
|
NULL, -- PARTITION_YEAR not used for single-file exports
|
||||||
NULL, -- PARTITION_MONTH not used for single-file exports
|
NULL, -- PARTITION_MONTH not used for single-file exports
|
||||||
NULL -- ARCH_FILE_NAME not used for single-file exports
|
NULL, -- ARCH_PATH not used for single-file exports
|
||||||
|
pProcessName -- Process name from parameter
|
||||||
);
|
);
|
||||||
|
|
||||||
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file without metadata: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vSanitizedFileName, 'INFO', vParameters);
|
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file without metadata: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vSanitizedFileName, 'INFO', vParameters);
|
||||||
@@ -1198,6 +1204,7 @@ AS
|
|||||||
pTemplateTableName IN VARCHAR2 default NULL,
|
pTemplateTableName IN VARCHAR2 default NULL,
|
||||||
pMaxFileSize IN NUMBER default 104857600,
|
pMaxFileSize IN NUMBER default 104857600,
|
||||||
pRegisterExport IN BOOLEAN default FALSE,
|
pRegisterExport IN BOOLEAN default FALSE,
|
||||||
|
pProcessName IN VARCHAR2 default 'DATA_EXPORTER',
|
||||||
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
||||||
)
|
)
|
||||||
IS
|
IS
|
||||||
@@ -1544,7 +1551,8 @@ AS
|
|||||||
PROCESSING_STATUS,
|
PROCESSING_STATUS,
|
||||||
PARTITION_YEAR,
|
PARTITION_YEAR,
|
||||||
PARTITION_MONTH,
|
PARTITION_MONTH,
|
||||||
ARCH_FILE_NAME
|
ARCH_PATH,
|
||||||
|
PROCESS_NAME
|
||||||
) VALUES (
|
) VALUES (
|
||||||
vSourceFileReceivedKey,
|
vSourceFileReceivedKey,
|
||||||
vConfigKey, -- Config key from A_SOURCE_FILE_CONFIG lookup
|
vConfigKey, -- Config key from A_SOURCE_FILE_CONFIG lookup
|
||||||
@@ -1556,7 +1564,8 @@ AS
|
|||||||
'INGESTED',
|
'INGESTED',
|
||||||
NULL, -- PARTITION_YEAR not used for CSV exports
|
NULL, -- PARTITION_YEAR not used for CSV exports
|
||||||
NULL, -- PARTITION_MONTH not used for CSV exports
|
NULL, -- PARTITION_MONTH not used for CSV exports
|
||||||
NULL -- ARCH_FILE_NAME not used for CSV exports
|
NULL, -- ARCH_PATH not used for CSV exports
|
||||||
|
pProcessName -- Process name from parameter
|
||||||
);
|
);
|
||||||
|
|
||||||
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vActualFileName || ', Size=' || vBytes || ' bytes', 'DEBUG', vParameters);
|
ENV_MANAGER.LOG_PROCESS_EVENT('Registered file: FileReceivedKey=' || vSourceFileReceivedKey || ', File=' || vActualFileName || ', Size=' || vBytes || ' bytes', 'DEBUG', vParameters);
|
||||||
@@ -1578,7 +1587,8 @@ AS
|
|||||||
PROCESSING_STATUS,
|
PROCESSING_STATUS,
|
||||||
PARTITION_YEAR,
|
PARTITION_YEAR,
|
||||||
PARTITION_MONTH,
|
PARTITION_MONTH,
|
||||||
ARCH_FILE_NAME
|
ARCH_PATH,
|
||||||
|
PROCESS_NAME
|
||||||
) VALUES (
|
) VALUES (
|
||||||
vSourceFileReceivedKey,
|
vSourceFileReceivedKey,
|
||||||
vConfigKey, -- Config key from A_SOURCE_FILE_CONFIG lookup
|
vConfigKey, -- Config key from A_SOURCE_FILE_CONFIG lookup
|
||||||
@@ -1587,7 +1597,8 @@ AS
|
|||||||
'INGESTED',
|
'INGESTED',
|
||||||
NULL, -- PARTITION_YEAR not used for CSV exports
|
NULL, -- PARTITION_YEAR not used for CSV exports
|
||||||
NULL, -- PARTITION_MONTH not used for CSV exports
|
NULL, -- PARTITION_MONTH not used for CSV exports
|
||||||
NULL -- ARCH_FILE_NAME not used for CSV exports
|
NULL, -- ARCH_PATH not used for CSV exports
|
||||||
|
pProcessName -- Process name from parameter
|
||||||
);
|
);
|
||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|||||||
@@ -81,6 +81,7 @@ AS
|
|||||||
* - NULL = use source table columns in natural order
|
* - NULL = use source table columns in natural order
|
||||||
* @param pMaxFileSize - Maximum file size in bytes (default 104857600 = 100MB, min 10MB, max 1GB)
|
* @param pMaxFileSize - Maximum file size in bytes (default 104857600 = 100MB, min 10MB, max 1GB)
|
||||||
* @param pRegisterExport - When TRUE, registers exported CSV file in A_SOURCE_FILE_RECEIVED table
|
* @param pRegisterExport - When TRUE, registers exported CSV file in A_SOURCE_FILE_RECEIVED table
|
||||||
|
* @param pProcessName - Process name stored in PROCESS_NAME column (default 'DATA_EXPORTER')
|
||||||
* @example
|
* @example
|
||||||
* begin
|
* begin
|
||||||
* DATA_EXPORTER.EXPORT_TABLE_DATA(
|
* DATA_EXPORTER.EXPORT_TABLE_DATA(
|
||||||
@@ -106,6 +107,7 @@ AS
|
|||||||
pTemplateTableName IN VARCHAR2 default NULL,
|
pTemplateTableName IN VARCHAR2 default NULL,
|
||||||
pMaxFileSize IN NUMBER default 104857600,
|
pMaxFileSize IN NUMBER default 104857600,
|
||||||
pRegisterExport IN BOOLEAN default FALSE,
|
pRegisterExport IN BOOLEAN default FALSE,
|
||||||
|
pProcessName IN VARCHAR2 default 'DATA_EXPORTER',
|
||||||
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -162,6 +164,7 @@ AS
|
|||||||
* File naming pattern: {pFileName}_YYYYMM.csv or {TABLENAME}_YYYYMM.csv (if pFileName is NULL)
|
* File naming pattern: {pFileName}_YYYYMM.csv or {TABLENAME}_YYYYMM.csv (if pFileName is NULL)
|
||||||
* When pRegisterExport=TRUE, successfully exported files are registered in:
|
* When pRegisterExport=TRUE, successfully exported files are registered in:
|
||||||
* - CT_MRDS.A_SOURCE_FILE_RECEIVED (tracks file location, size, checksum, and metadata)
|
* - CT_MRDS.A_SOURCE_FILE_RECEIVED (tracks file location, size, checksum, and metadata)
|
||||||
|
* @param pProcessName - Process name stored in PROCESS_NAME column (default 'DATA_EXPORTER')
|
||||||
* @example
|
* @example
|
||||||
* begin
|
* begin
|
||||||
* -- With custom filename
|
* -- With custom filename
|
||||||
@@ -207,6 +210,7 @@ AS
|
|||||||
pTemplateTableName IN VARCHAR2 default NULL,
|
pTemplateTableName IN VARCHAR2 default NULL,
|
||||||
pMaxFileSize IN NUMBER default 104857600,
|
pMaxFileSize IN NUMBER default 104857600,
|
||||||
pRegisterExport IN BOOLEAN default FALSE,
|
pRegisterExport IN BOOLEAN default FALSE,
|
||||||
|
pProcessName IN VARCHAR2 default 'DATA_EXPORTER',
|
||||||
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
pCredentialName IN VARCHAR2 default ENV_MANAGER.gvCredentialName
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ PROMPT MARS-835-PREHOOK: Rollback to Previous Versions
|
|||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT WARNING: This will reverse all changes from MARS-835-PREHOOK installation!
|
PROMPT WARNING: This will reverse all changes from MARS-835-PREHOOK installation!
|
||||||
PROMPT - Removes A_PARALLEL_EXPORT_CHUNKS table
|
PROMPT - Removes A_PARALLEL_EXPORT_CHUNKS table
|
||||||
|
PROMPT - Reverts A_SOURCE_FILE_RECEIVED table (rename ARCH_PATH to ARCH_FILE_NAME, drop PROCESS_NAME column)
|
||||||
PROMPT - Restores ENV_MANAGER v3.1.0 (removes parallel error codes)
|
PROMPT - Restores ENV_MANAGER v3.1.0 (removes parallel error codes)
|
||||||
PROMPT - Restores DATA_EXPORTER v2.1.0 (removes parallel + Smart Column Mapping)
|
PROMPT - Restores DATA_EXPORTER v2.1.0 (removes parallel + Smart Column Mapping)
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@ -65,13 +66,19 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 3: Track Rollback Version
|
PROMPT Step 3: Rollback A_SOURCE_FILE_RECEIVED Table Structure
|
||||||
|
PROMPT =========================================================================
|
||||||
|
@@93_MARS_835_PREHOOK_rollback_SOURCE_FILE_RECEIVED_table.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT =========================================================================
|
||||||
|
PROMPT Step 4: Track Rollback Version
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@track_package_versions.sql
|
@@track_package_versions.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 4: Verify Package Versions After Rollback
|
PROMPT Step 5: Verify Package Versions After Rollback
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@verify_packages_version.sql
|
@@verify_packages_version.sql
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
-- ====================================================================
|
||||||
|
-- A_SOURCE_FILE_RECEIVED Table
|
||||||
|
-- ====================================================================
|
||||||
|
-- Purpose: Track received files and their processing status
|
||||||
|
-- ====================================================================
|
||||||
|
|
||||||
|
CREATE TABLE CT_MRDS.A_SOURCE_FILE_RECEIVED (
|
||||||
|
A_SOURCE_FILE_RECEIVED_KEY NUMBER(38,0) NOT NULL ENABLE,
|
||||||
|
A_SOURCE_FILE_CONFIG_KEY NUMBER(38,0) NOT NULL ENABLE,
|
||||||
|
SOURCE_FILE_NAME VARCHAR2(1000) NOT NULL,
|
||||||
|
CHECKSUM VARCHAR2(128),
|
||||||
|
CREATED TIMESTAMP(6) WITH TIME ZONE,
|
||||||
|
BYTES NUMBER,
|
||||||
|
RECEPTION_DATE DATE NOT NULL,
|
||||||
|
PROCESSING_STATUS VARCHAR2(200),
|
||||||
|
EXTERNAL_TABLE_NAME VARCHAR2(200),
|
||||||
|
PARTITION_YEAR VARCHAR2(4),
|
||||||
|
PARTITION_MONTH VARCHAR2(2),
|
||||||
|
ARCH_FILE_NAME VARCHAR2(1000),
|
||||||
|
CONSTRAINT A_SOURCE_FILE_RECEIVED_PK PRIMARY KEY (A_SOURCE_FILE_RECEIVED_KEY),
|
||||||
|
CONSTRAINT ASFR_A_SOURCE_FILE_CONFIG_KEY_FK FOREIGN KEY(A_SOURCE_FILE_CONFIG_KEY) REFERENCES CT_MRDS.A_SOURCE_FILE_CONFIG(A_SOURCE_FILE_CONFIG_KEY),
|
||||||
|
CONSTRAINT A_SOURCE_FILE_RECEIVED_CHK CHECK (PROCESSING_STATUS IN ('RECEIVED', 'VALIDATED', 'READY_FOR_INGESTION', 'INGESTED', 'ARCHIVED'))
|
||||||
|
) TABLESPACE "DATA";
|
||||||
|
|
||||||
|
-- Unique index for file identification (workaround for TIMESTAMP WITH TIMEZONE constraint limitation)
|
||||||
|
CREATE UNIQUE INDEX CT_MRDS.A_SOURCE_FILE_RECEIVED_UK1
|
||||||
|
ON CT_MRDS.A_SOURCE_FILE_RECEIVED(CHECKSUM, CREATED, BYTES);
|
||||||
|
|
||||||
|
GRANT SELECT, INSERT, UPDATE, DELETE ON CT_MRDS.A_SOURCE_FILE_RECEIVED TO MRDS_LOADER_ROLE;
|
||||||
Reference in New Issue
Block a user