Enhance MARS-956 export and rollback scripts with process tracking identifier

This commit is contained in:
Grzegorz Michalski
2026-02-13 08:39:39 +01:00
parent 0053ecc556
commit 255044f23b
3 changed files with 35 additions and 35 deletions

View File

@@ -330,7 +330,8 @@ BEGIN
pFolderName => 'ODS/C2D/C2D_MPEC_ADMIN', pFolderName => 'ODS/C2D/C2D_MPEC_ADMIN',
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_ADMIN', -- Template for column order pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_ADMIN', -- Template for column order
pMaxFileSize => 104857600, -- 100MB max file size pMaxFileSize => 104857600, -- 100MB max file size
pRegisterExport => TRUE -- Register files in A_SOURCE_FILE_RECEIVED pRegisterExport => TRUE, -- Register files in A_SOURCE_FILE_RECEIVED
pProcessName => 'MARS-956' -- Process identifier for tracking
); );
DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_ADMIN export completed successfully'); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_ADMIN export completed successfully');
@@ -366,7 +367,8 @@ BEGIN
pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT', pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT',
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT', pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT',
pMaxFileSize => 104857600, -- 100MB max file size pMaxFileSize => 104857600, -- 100MB max file size
pRegisterExport => TRUE pRegisterExport => TRUE,
pProcessName => 'MARS-956' -- Process identifier for tracking
); );
DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT export completed successfully'); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT export completed successfully');
@@ -402,7 +404,8 @@ BEGIN
pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION', pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION',
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT_CRITERION', pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT_CRITERION',
pMaxFileSize => 104857600, -- 100MB max file size pMaxFileSize => 104857600, -- 100MB max file size
pRegisterExport => TRUE pRegisterExport => TRUE,
pProcessName => 'MARS-956' -- Process identifier for tracking
); );
DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT_CRITERION export completed successfully'); DBMS_OUTPUT.PUT_LINE('SUCCESS: MPEC_CONTENT_CRITERION export completed successfully');

View File

@@ -27,15 +27,14 @@ BEGIN
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_ADMIN files from DATA bucket...'); DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_ADMIN files from DATA bucket...');
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956''');
-- Delete CSV files from DATA bucket (only files matching export pattern) -- Delete CSV files registered by MARS-956 process
FOR rec IN ( FOR rec IN (
SELECT object_name SELECT SOURCE_FILE_NAME AS object_name
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
credential_name => vCredentialName, WHERE PROCESS_NAME = 'MARS-956'
location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_ADMIN/' AND SOURCE_FILE_NAME LIKE '%MPEC_ADMIN%'
))
WHERE object_name LIKE '%.csv'
) LOOP ) LOOP
BEGIN BEGIN
DBMS_CLOUD.DELETE_OBJECT( DBMS_CLOUD.DELETE_OBJECT(
@@ -79,15 +78,15 @@ BEGIN
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT files from DATA bucket...'); DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT files from DATA bucket...');
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956''');
-- Delete CSV files from DATA bucket (only files matching export pattern) -- Delete CSV files registered by MARS-956 process
FOR rec IN ( FOR rec IN (
SELECT object_name SELECT SOURCE_FILE_NAME AS object_name
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
credential_name => vCredentialName, WHERE PROCESS_NAME = 'MARS-956'
location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_CONTENT/' AND SOURCE_FILE_NAME LIKE '%MPEC_CONTENT%'
)) AND SOURCE_FILE_NAME NOT LIKE '%CRITERION%'
WHERE object_name LIKE '%.csv'
) LOOP ) LOOP
BEGIN BEGIN
DBMS_CLOUD.DELETE_OBJECT( DBMS_CLOUD.DELETE_OBJECT(
@@ -131,15 +130,14 @@ BEGIN
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName; vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT_CRITERION files from DATA bucket...'); DBMS_OUTPUT.PUT_LINE('Deleting C2D_MPEC_CONTENT_CRITERION files from DATA bucket...');
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-956''');
-- Delete CSV files from DATA bucket (only files matching export pattern) -- Delete CSV files registered by MARS-956 process
FOR rec IN ( FOR rec IN (
SELECT object_name SELECT SOURCE_FILE_NAME AS object_name
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS( FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
credential_name => vCredentialName, WHERE PROCESS_NAME = 'MARS-956'
location_uri => vDataBucketUri || 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION/' AND SOURCE_FILE_NAME LIKE '%MPEC_CONTENT_CRITERION%'
))
WHERE object_name LIKE '%.csv'
) LOOP ) LOOP
BEGIN BEGIN
DBMS_CLOUD.DELETE_OBJECT( DBMS_CLOUD.DELETE_OBJECT(

View File

@@ -17,34 +17,33 @@ DECLARE
vDeletedCount NUMBER := 0; vDeletedCount NUMBER := 0;
vErrorMsg VARCHAR2(4000); vErrorMsg VARCHAR2(4000);
BEGIN BEGIN
-- Count files to be deleted -- Count files to be deleted (using PROCESS_NAME)
SELECT COUNT(*) SELECT COUNT(*)
INTO vFileCount INTO vFileCount
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
WHERE SOURCE_FILE_NAME LIKE '200%' -- ETL keys 2001-2010 WHERE PROCESS_NAME = 'MARS-956';
AND RECEPTION_DATE >= SYSDATE - 7; -- Last week (safety)
DBMS_OUTPUT.PUT_LINE('Files to be deleted: ' || vFileCount); DBMS_OUTPUT.PUT_LINE('Files to be deleted: ' || vFileCount);
DBMS_OUTPUT.PUT_LINE('Using PROCESS_NAME = ''MARS-956'' filter');
IF vFileCount > 0 THEN IF vFileCount > 0 THEN
-- Show files before deletion -- Show files before deletion
DBMS_OUTPUT.PUT_LINE('Files being removed:'); DBMS_OUTPUT.PUT_LINE('Files being removed:');
FOR rec IN ( FOR rec IN (
SELECT A_SOURCE_FILE_RECEIVED_KEY, SELECT A_SOURCE_FILE_RECEIVED_KEY,
SUBSTR(SOURCE_FILE_NAME, 1, 50) AS FILE_NAME, SUBSTR(SOURCE_FILE_NAME, 1, 60) AS FILE_NAME,
TO_CHAR(RECEPTION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS RECEIVED_TIME TO_CHAR(RECEPTION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS RECEIVED_TIME,
PROCESS_NAME
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
WHERE SOURCE_FILE_NAME LIKE '200%' WHERE PROCESS_NAME = 'MARS-956'
AND RECEPTION_DATE >= SYSDATE - 7
ORDER BY RECEPTION_DATE DESC ORDER BY RECEPTION_DATE DESC
) LOOP ) LOOP
DBMS_OUTPUT.PUT_LINE('- ' || rec.FILE_NAME || ' (ID: ' || rec.A_SOURCE_FILE_RECEIVED_KEY || ')'); DBMS_OUTPUT.PUT_LINE('- ' || rec.FILE_NAME || ' (ID: ' || rec.A_SOURCE_FILE_RECEIVED_KEY || ', Process: ' || rec.PROCESS_NAME || ')');
END LOOP; END LOOP;
-- Delete the file registrations -- Delete the file registrations using PROCESS_NAME
DELETE FROM CT_MRDS.A_SOURCE_FILE_RECEIVED DELETE FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
WHERE SOURCE_FILE_NAME LIKE '200%' WHERE PROCESS_NAME = 'MARS-956';
AND RECEPTION_DATE >= SYSDATE - 7;
vDeletedCount := SQL%ROWCOUNT; vDeletedCount := SQL%ROWCOUNT;
COMMIT; COMMIT;