Compare commits
3 Commits
255044f23b
...
d8a5edc3b1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8a5edc3b1 | ||
|
|
d6c34085f7 | ||
|
|
2c40f091e0 |
@@ -24,7 +24,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_HEADER',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -44,7 +46,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -64,7 +68,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM_HEADER',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_ITEM_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ADHOC_ADJ_ITEM_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_BALANCESHEET_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_BALANCESHEET_HEADER',
|
||||||
pParallelDegree => 4
|
pParallelDegree => 4,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_BALANCESHEET_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_BALANCESHEET_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -49,7 +51,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_BALANCESHEET_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_BALANCESHEET_ITEM',
|
||||||
pParallelDegree => 16
|
pParallelDegree => 16,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_BALANCESHEET_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_BALANCESHEET_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_HEADER',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -44,7 +46,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM',
|
||||||
pParallelDegree => 2
|
pParallelDegree => 2,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -64,7 +68,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM_HEADER',
|
||||||
pParallelDegree => 2
|
pParallelDegree => 2,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_ITEM_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_CSM_ADJ_ITEM_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_STANDING_FACILITIES',
|
pFolderName => 'ARCHIVE/LM/LM_STANDING_FACILITIES',
|
||||||
pParallelDegree => 8
|
pParallelDegree => 8,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_STANDING_FACILITY exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_STANDING_FACILITY exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -49,7 +51,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_STANDING_FACILITIES_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_STANDING_FACILITIES_HEADER',
|
||||||
pParallelDegree => 2
|
pParallelDegree => 2,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_STANDING_FACILITY_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_STANDING_FACILITY_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -25,7 +25,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_HEADER',
|
||||||
pParallelDegree => 2
|
pParallelDegree => 2,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_MRR_IND_CURRENT_ACCOUNT_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_MRR_IND_CURRENT_ACCOUNT_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -45,7 +47,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_ITEM',
|
||||||
pParallelDegree => 16
|
pParallelDegree => 16,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_MRR_IND_CURRENT_ACCOUNT_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_MRR_IND_CURRENT_ACCOUNT_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -29,7 +29,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_FORECAST_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_FORECAST_HEADER',
|
||||||
pParallelDegree => 4
|
pParallelDegree => 4,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_FORECAST_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_FORECAST_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -49,7 +51,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_FORECAST_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_FORECAST_ITEM',
|
||||||
pParallelDegree => 16
|
pParallelDegree => 16,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_FORECAST_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_FORECAST_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_HEADER',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -44,7 +46,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM',
|
||||||
pParallelDegree => 4
|
pParallelDegree => 4,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -64,7 +68,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_KEY_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM_HEADER',
|
||||||
pParallelDegree => 2
|
pParallelDegree => 2,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_ITEM_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_QR_ADJ_ITEM_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_TTS_HEADER',
|
pFolderName => 'ARCHIVE/LM/LM_TTS_HEADER',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_TTS_HEADER exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_TTS_HEADER exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
@@ -44,7 +46,9 @@ BEGIN
|
|||||||
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
pKeyColumnName => 'A_ETL_LOAD_SET_FK',
|
||||||
pBucketArea => 'ARCHIVE',
|
pBucketArea => 'ARCHIVE',
|
||||||
pFolderName => 'ARCHIVE/LM/LM_TTS_ITEM',
|
pFolderName => 'ARCHIVE/LM/LM_TTS_ITEM',
|
||||||
pParallelDegree => 1
|
pParallelDegree => 1,
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-826'
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_TTS_ITEM exported');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_TTS_ITEM exported');
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
-- =====================================================================================
|
||||||
|
-- Script: 90_MARS_826_rollback_file_registrations.sql
|
||||||
|
-- Purpose: Delete file registration records for MARS-826 from A_SOURCE_FILE_RECEIVED
|
||||||
|
-- Author: Grzegorz Michalski
|
||||||
|
-- Created: 2026-02-13
|
||||||
|
-- MARS Issue: MARS-826
|
||||||
|
-- Target Table: CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
|
-- =====================================================================================
|
||||||
|
|
||||||
|
SET SERVEROUTPUT ON SIZE UNLIMITED;
|
||||||
|
SET FEEDBACK ON;
|
||||||
|
|
||||||
|
PROMPT =====================================================================================
|
||||||
|
PROMPT MARS-826 Rollback: Deleting file registration records from A_SOURCE_FILE_RECEIVED
|
||||||
|
PROMPT =====================================================================================
|
||||||
|
|
||||||
|
DECLARE
|
||||||
|
vDeletedCount NUMBER := 0;
|
||||||
|
BEGIN
|
||||||
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting file registrations for PROCESS_NAME = ''MARS-826''...');
|
||||||
|
|
||||||
|
-- Delete all records registered by MARS-826 process
|
||||||
|
DELETE FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
|
WHERE PROCESS_NAME = 'MARS-826';
|
||||||
|
|
||||||
|
vDeletedCount := SQL%ROWCOUNT;
|
||||||
|
COMMIT;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Deleted ' || vDeletedCount || ' file registration record(s)');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
ROLLBACK;
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('FATAL ERROR: ' || SQLERRM);
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Error occurred at: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
|
RAISE;
|
||||||
|
END;
|
||||||
|
/
|
||||||
|
|
||||||
@@ -23,11 +23,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -35,56 +30,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting ADHOC_ADJ files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for ADHOC_ADJ tables
|
-- Delete files registered by MARS-826 process for ADHOC_ADJ tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM/',
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
'ARCHIVE/LM/LM_ADHOC_ADJUSTMENTS_ITEM_HEADER/'
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
);
|
AND (SOURCE_FILE_NAME LIKE '%ADHOC_ADJUSTMENTS%')
|
||||||
|
ORDER BY SOURCE_FILE_NAME
|
||||||
-- Process each folder
|
) LOOP
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
vFileCount := vFileCount + 1;
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No ADHOC_ADJ files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -34,55 +29,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting BALANCESHEET files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for BALANCESHEET tables
|
-- Delete files registered by MARS-826 process for BALANCESHEET tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_BALANCESHEET_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_BALANCESHEET_ITEM/'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
);
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
|
AND (SOURCE_FILE_NAME LIKE '%BALANCESHEET%')
|
||||||
-- Process each folder
|
ORDER BY SOURCE_FILE_NAME
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
) LOOP
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
vFileCount := vFileCount + 1;
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No BALANCESHEET files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -35,56 +30,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting CSM_ADJ files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for CSM_ADJ tables
|
-- Delete files registered by MARS-826 process for CSM_ADJ tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM/',
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
'ARCHIVE/LM/LM_CSM_ADJUSTMENTS_ITEM_HEADER/'
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
);
|
AND (SOURCE_FILE_NAME LIKE '%CSM_ADJUSTMENTS%')
|
||||||
|
ORDER BY SOURCE_FILE_NAME
|
||||||
-- Process each folder
|
) LOOP
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
vFileCount := vFileCount + 1;
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No CSM_ADJ files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -34,55 +29,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting STANDING_FACILITY files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for STANDING_FACILITY tables
|
-- Delete files registered by MARS-826 process for STANDING_FACILITY tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_STANDING_FACILITIES/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_STANDING_FACILITIES_HEADER/'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
);
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
|
AND (SOURCE_FILE_NAME LIKE '%STANDING_FACILITIES%')
|
||||||
-- Process each folder
|
ORDER BY SOURCE_FILE_NAME
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
) LOOP
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
vFileCount := vFileCount + 1;
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No STANDING_FACILITY files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -34,55 +29,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting MRR_IND_CURRENT_ACCOUNT files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for MRR_IND_CURR_ACC tables (OU_MRR schema)
|
-- Delete files registered by MARS-826 process for MRR_IND_CURRENT_ACCOUNT tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_CURRENT_ACCOUNTS_ITEM/'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
);
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
|
AND (SOURCE_FILE_NAME LIKE '%CURRENT_ACCOUNTS%')
|
||||||
-- Process each folder
|
ORDER BY SOURCE_FILE_NAME
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
) LOOP
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
vFileCount := vFileCount + 1;
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No MRR_IND_CURRENT_ACCOUNT files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -34,55 +29,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting FORECAST files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for FORECAST tables
|
-- Delete files registered by MARS-826 process for FORECAST tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_FORECAST_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_FORECAST_ITEM/'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
);
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
|
AND (SOURCE_FILE_NAME LIKE '%FORECAST%')
|
||||||
-- Process each folder
|
ORDER BY SOURCE_FILE_NAME
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
) LOOP
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
vFileCount := vFileCount + 1;
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No FORECAST files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -23,11 +23,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -35,56 +30,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting QR_ADJ files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for QR_ADJ tables
|
-- Delete files registered by MARS-826 process for QR_ADJ tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM/',
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
'ARCHIVE/LM/LM_QRE_ADJUSTMENTS_ITEM_HEADER/'
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
);
|
AND (SOURCE_FILE_NAME LIKE '%QRE_ADJUSTMENTS%')
|
||||||
|
ORDER BY SOURCE_FILE_NAME
|
||||||
-- Process each folder
|
) LOOP
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
vFileCount := vFileCount + 1;
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No QR_ADJ files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -22,11 +22,6 @@ DECLARE
|
|||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
vFileCount NUMBER := 0;
|
vFileCount NUMBER := 0;
|
||||||
vDeletedCount NUMBER := 0;
|
|
||||||
vTotalDeleted NUMBER := 0;
|
|
||||||
|
|
||||||
TYPE t_folder_list IS TABLE OF VARCHAR2(200);
|
|
||||||
vFolders t_folder_list;
|
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential from FILE_MANAGER configuration
|
-- Get bucket URI and credential from FILE_MANAGER configuration
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
@@ -34,55 +29,45 @@ BEGIN
|
|||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('START TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
|
DBMS_OUTPUT.PUT_LINE('Deleting TTS files registered by MARS-826 process...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-826''');
|
||||||
|
|
||||||
-- Initialize folder list for TTS tables
|
-- Delete files registered by MARS-826 process for TTS tables
|
||||||
vFolders := t_folder_list(
|
FOR rec IN (
|
||||||
'ARCHIVE/LM/LM_TTS_HEADER/',
|
SELECT SOURCE_FILE_NAME AS object_name
|
||||||
'ARCHIVE/LM/LM_TTS_ITEM/'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
);
|
WHERE PROCESS_NAME = 'MARS-826'
|
||||||
|
AND (SOURCE_FILE_NAME LIKE '%TTS%')
|
||||||
-- Process each folder
|
ORDER BY SOURCE_FILE_NAME
|
||||||
FOR i IN 1..vFolders.COUNT LOOP
|
) LOOP
|
||||||
DBMS_OUTPUT.PUT_LINE('Processing folder: ' || vFolders(i));
|
vFileCount := vFileCount + 1;
|
||||||
vFileCount := 0;
|
|
||||||
vDeletedCount := 0;
|
|
||||||
|
|
||||||
-- List and delete all Parquet files in the folder
|
BEGIN
|
||||||
FOR rec IN (
|
-- Delete the file
|
||||||
SELECT object_name
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
location_uri => vBucketUri || vFolders(i)
|
object_uri => vBucketUri || rec.object_name
|
||||||
))
|
);
|
||||||
WHERE object_name LIKE '%.parquet'
|
|
||||||
ORDER BY object_name
|
|
||||||
) LOOP
|
|
||||||
vFileCount := vFileCount + 1;
|
|
||||||
|
|
||||||
BEGIN
|
DBMS_OUTPUT.PUT_LINE(' [' || vFileCount || '] Deleted: ' || rec.object_name);
|
||||||
-- Delete the Parquet file
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
EXCEPTION
|
||||||
credential_name => vCredentialName,
|
WHEN OTHERS THEN
|
||||||
object_uri => vBucketUri || vFolders(i) || rec.object_name
|
IF SQLCODE = -20404 THEN
|
||||||
);
|
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
||||||
|
ELSE
|
||||||
vDeletedCount := vDeletedCount + 1;
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' [' || vDeletedCount || '] Deleted: ' || rec.object_name);
|
|
||||||
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
DBMS_OUTPUT.PUT_LINE(' ERROR deleting ' || rec.object_name || ': ' || SQLERRM);
|
||||||
END;
|
END IF;
|
||||||
END LOOP;
|
END;
|
||||||
|
|
||||||
vTotalDeleted := vTotalDeleted + vDeletedCount;
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Folder summary: Found ' || vFileCount || ' files, deleted ' || vDeletedCount || ' files');
|
|
||||||
DBMS_OUTPUT.PUT_LINE('');
|
|
||||||
|
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No TTS files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('');
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vTotalDeleted);
|
DBMS_OUTPUT.PUT_LINE('ROLLBACK COMPLETE: Total files deleted: ' || vFileCount);
|
||||||
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
DBMS_OUTPUT.PUT_LINE('END TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
|
||||||
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,7 @@ PROMPT
|
|||||||
PROMPT ============================================================================
|
PROMPT ============================================================================
|
||||||
|
|
||||||
-- Execute rollback scripts
|
-- Execute rollback scripts
|
||||||
|
@@90_MARS_826_rollback_file_registrations.sql
|
||||||
@@91_MARS_826_rollback_ADHOC_ADJ_tables.sql
|
@@91_MARS_826_rollback_ADHOC_ADJ_tables.sql
|
||||||
@@92_MARS_826_rollback_BALANCESHEET_tables.sql
|
@@92_MARS_826_rollback_BALANCESHEET_tables.sql
|
||||||
@@93_MARS_826_rollback_CSM_ADJ_tables.sql
|
@@93_MARS_826_rollback_CSM_ADJ_tables.sql
|
||||||
|
|||||||
@@ -60,22 +60,22 @@ PROMPT =========================================================================
|
|||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 2: Deploy ENV_MANAGER Package
|
PROMPT Step 2: Update A_SOURCE_FILE_RECEIVED Table Structure
|
||||||
|
PROMPT =========================================================================
|
||||||
|
@@03_MARS_835_PREHOOK_update_SOURCE_FILE_RECEIVED_table.sql
|
||||||
|
|
||||||
|
PROMPT
|
||||||
|
PROMPT =========================================================================
|
||||||
|
PROMPT Step 3: Deploy ENV_MANAGER Package
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@01_MARS_835_PREHOOK_install_ENV_MANAGER.sql
|
@@01_MARS_835_PREHOOK_install_ENV_MANAGER.sql
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 3: Deploy DATA_EXPORTER Package
|
PROMPT Step 4: Deploy DATA_EXPORTER Package
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
@@02_MARS_835_PREHOOK_install_DATA_EXPORTER.sql
|
@@02_MARS_835_PREHOOK_install_DATA_EXPORTER.sql
|
||||||
|
|
||||||
PROMPT
|
|
||||||
PROMPT =========================================================================
|
|
||||||
PROMPT Step 4: Update A_SOURCE_FILE_RECEIVED Table Structure
|
|
||||||
PROMPT =========================================================================
|
|
||||||
@@03_MARS_835_PREHOOK_update_SOURCE_FILE_RECEIVED_table.sql
|
|
||||||
|
|
||||||
PROMPT
|
PROMPT
|
||||||
PROMPT =========================================================================
|
PROMPT =========================================================================
|
||||||
PROMPT Step 5: Track Package Versions
|
PROMPT Step 5: Track Package Versions
|
||||||
|
|||||||
@@ -107,7 +107,8 @@ BEGIN
|
|||||||
pParallelDegree => 16,
|
pParallelDegree => 16,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||||
pMaxFileSize => 104857600, -- 100MB in bytes (safe for parallel execution, avoids ORA-04036)
|
pMaxFileSize => 104857600, -- 100MB in bytes (safe for parallel execution, avoids ORA-04036)
|
||||||
pRegisterExport => TRUE -- Register exported files in A_SOURCE_FILE_RECEIVED with metadata (CHECKSUM, CREATED, BYTES)
|
pRegisterExport => TRUE, -- Register exported files in A_SOURCE_FILE_RECEIVED with metadata (CHECKSUM, CREATED, BYTES)
|
||||||
|
pProcessName => 'MARS-835' -- Process identifier for tracking
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT exported to DATA bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT exported to DATA bucket with template column order');
|
||||||
@@ -128,7 +129,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_DEBT',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_DEBT',
|
||||||
pMaxDate => &cutoff_date,
|
pMaxDate => &cutoff_date,
|
||||||
pParallelDegree => 16,
|
pParallelDegree => 16,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT exported to HIST bucket with template column order');
|
||||||
@@ -227,7 +230,8 @@ BEGIN
|
|||||||
pParallelDegree => 16,
|
pParallelDegree => 16,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||||
pMaxFileSize => 104857600, -- 100MB in bytes (safe for parallel execution, avoids ORA-04036)
|
pMaxFileSize => 104857600, -- 100MB in bytes (safe for parallel execution, avoids ORA-04036)
|
||||||
pRegisterExport => TRUE -- Register exported files in A_SOURCE_FILE_RECEIVED with metadata (CHECKSUM, CREATED, BYTES)
|
pRegisterExport => TRUE, -- Register exported files in A_SOURCE_FILE_RECEIVED with metadata (CHECKSUM, CREATED, BYTES)
|
||||||
|
pProcessName => 'MARS-835' -- Process identifier for tracking
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT_DAILY exported to DATA bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT_DAILY exported to DATA bucket with template column order');
|
||||||
@@ -248,7 +252,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_DEBT_DAILY',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_DEBT_DAILY',
|
||||||
pMaxDate => &cutoff_date,
|
pMaxDate => &cutoff_date,
|
||||||
pParallelDegree => 16,
|
pParallelDegree => 16,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT_DAILY exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_DEBT_DAILY exported to HIST bucket with template column order');
|
||||||
|
|||||||
@@ -35,7 +35,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL',
|
||||||
pMaxDate => SYSDATE,
|
pMaxDate => SYSDATE,
|
||||||
pParallelDegree => 8,
|
pParallelDegree => 8,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_INSTR_RAT_FULL exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_INSTR_RAT_FULL exported to HIST bucket with template column order');
|
||||||
@@ -62,7 +64,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL',
|
||||||
pMaxDate => SYSDATE,
|
pMaxDate => SYSDATE,
|
||||||
pParallelDegree => 8,
|
pParallelDegree => 8,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_INSTR_DESC_FULL exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_INSTR_DESC_FULL exported to HIST bucket with template column order');
|
||||||
@@ -89,7 +93,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL',
|
||||||
pMaxDate => SYSDATE,
|
pMaxDate => SYSDATE,
|
||||||
pParallelDegree => 8,
|
pParallelDegree => 8,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ISSUER_RAT_FULL exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ISSUER_RAT_FULL exported to HIST bucket with template column order');
|
||||||
@@ -116,7 +122,9 @@ BEGIN
|
|||||||
pFolderName => 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL',
|
pFolderName => 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL',
|
||||||
pMaxDate => SYSDATE,
|
pMaxDate => SYSDATE,
|
||||||
pParallelDegree => 8,
|
pParallelDegree => 8,
|
||||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL'
|
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||||
|
pRegisterExport => TRUE,
|
||||||
|
pProcessName => 'MARS-835'
|
||||||
);
|
);
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ISSUER_DESC_FULL exported to HIST bucket with template column order');
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: LEGACY_ISSUER_DESC_FULL exported to HIST bucket with template column order');
|
||||||
|
|||||||
@@ -22,32 +22,43 @@ DECLARE
|
|||||||
vDataBucketUri VARCHAR2(500);
|
vDataBucketUri VARCHAR2(500);
|
||||||
vHistBucketUri VARCHAR2(500);
|
vHistBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URIs and credential
|
-- Get bucket URIs and credential
|
||||||
vDataBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('DATA');
|
vDataBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('DATA');
|
||||||
vHistBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vHistBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting DEBT files from DATA bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting DEBT files from DATA and HIST buckets...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
-- Delete CSV files from DATA bucket (only files matching export pattern)
|
-- Delete files registered by MARS-835 process for CSDB_DEBT
|
||||||
-- Pattern matches: LEGACY_DEBT_YYYYMM.csv OR LEGACY_DEBT_YYYYMM_1_20260122T...Z.csv (Oracle timestamp)
|
|
||||||
FOR rec IN (
|
FOR rec IN (
|
||||||
SELECT object_name
|
SELECT SOURCE_FILE_NAME AS object_name,
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
CASE
|
||||||
credential_name => vCredentialName,
|
WHEN SOURCE_FILE_NAME LIKE '%.csv' THEN 'DATA'
|
||||||
location_uri => vDataBucketUri || 'ODS/CSDB/CSDB_DEBT/'
|
WHEN SOURCE_FILE_NAME LIKE '%.parquet' THEN 'ARCHIVE'
|
||||||
))
|
ELSE 'UNKNOWN'
|
||||||
WHERE object_name LIKE 'LEGACY_DEBT_%'
|
END AS bucket_type
|
||||||
AND object_name LIKE '%.csv'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
AND REGEXP_LIKE(object_name, '^LEGACY_DEBT_[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.csv$') -- YYYYMM or YYYYMM_1_timestamp
|
WHERE PROCESS_NAME = 'MARS-835'
|
||||||
|
AND SOURCE_FILE_NAME LIKE '%DEBT%'
|
||||||
|
AND SOURCE_FILE_NAME NOT LIKE '%DEBT_DAILY%'
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
IF rec.bucket_type = 'DATA' THEN
|
||||||
credential_name => vCredentialName,
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
object_uri => vDataBucketUri || 'ODS/CSDB/CSDB_DEBT/' || rec.object_name
|
credential_name => vCredentialName,
|
||||||
);
|
object_uri => vDataBucketUri || rec.object_name
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
);
|
||||||
|
ELSIF rec.bucket_type = 'ARCHIVE' THEN
|
||||||
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
|
credential_name => vCredentialName,
|
||||||
|
object_uri => vHistBucketUri || rec.object_name
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Deleted (' || rec.bucket_type || '): ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -58,37 +69,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting DEBT files from HIST bucket...');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No DEBT files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Delete Parquet files from HIST bucket (only files matching export pattern)
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: DEBT files deleted (' || vFileCount || ' file(s))');
|
||||||
-- Pattern matches: YYYYMM.parquet OR YYYYMM_1_20260122T...Z.parquet (Oracle timestamp)
|
|
||||||
FOR rec IN (
|
|
||||||
SELECT object_name
|
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
|
||||||
location_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT/'
|
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
|
||||||
BEGIN
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
|
||||||
credential_name => vCredentialName,
|
|
||||||
object_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT/' || rec.object_name
|
|
||||||
);
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
IF SQLCODE = -20404 THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
|
||||||
ELSE
|
|
||||||
RAISE;
|
|
||||||
END IF;
|
|
||||||
END;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: DEBT files deleted');
|
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -104,32 +89,42 @@ DECLARE
|
|||||||
vDataBucketUri VARCHAR2(500);
|
vDataBucketUri VARCHAR2(500);
|
||||||
vHistBucketUri VARCHAR2(500);
|
vHistBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URIs and credential
|
-- Get bucket URIs and credential
|
||||||
vDataBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('DATA');
|
vDataBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('DATA');
|
||||||
vHistBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vHistBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting DEBT_DAILY files from DATA bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting DEBT_DAILY files from DATA and HIST buckets...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
-- Delete CSV files from DATA bucket (only files matching export pattern)
|
-- Delete files registered by MARS-835 process for CSDB_DEBT_DAILY
|
||||||
-- Pattern matches: LEGACY_DEBT_DAILY_YYYYMM.csv OR LEGACY_DEBT_DAILY_YYYYMM_1_timestamp.csv
|
|
||||||
FOR rec IN (
|
FOR rec IN (
|
||||||
SELECT object_name
|
SELECT SOURCE_FILE_NAME AS object_name,
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
CASE
|
||||||
credential_name => vCredentialName,
|
WHEN SOURCE_FILE_NAME LIKE '%.csv' THEN 'DATA'
|
||||||
location_uri => vDataBucketUri || 'ODS/CSDB/CSDB_DEBT_DAILY/'
|
WHEN SOURCE_FILE_NAME LIKE '%.parquet' THEN 'ARCHIVE'
|
||||||
))
|
ELSE 'UNKNOWN'
|
||||||
WHERE object_name LIKE 'LEGACY_DEBT_DAILY_%'
|
END AS bucket_type
|
||||||
AND object_name LIKE '%.csv'
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
||||||
AND REGEXP_LIKE(object_name, '^LEGACY_DEBT_DAILY_[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.csv$') -- YYYYMM or YYYYMM_1_timestamp
|
WHERE PROCESS_NAME = 'MARS-835'
|
||||||
|
AND SOURCE_FILE_NAME LIKE '%DEBT_DAILY%'
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
IF rec.bucket_type = 'DATA' THEN
|
||||||
credential_name => vCredentialName,
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
object_uri => vDataBucketUri || 'ODS/CSDB/CSDB_DEBT_DAILY/' || rec.object_name
|
credential_name => vCredentialName,
|
||||||
);
|
object_uri => vDataBucketUri || rec.object_name
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
);
|
||||||
|
ELSIF rec.bucket_type = 'ARCHIVE' THEN
|
||||||
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
|
credential_name => vCredentialName,
|
||||||
|
object_uri => vHistBucketUri || rec.object_name
|
||||||
|
);
|
||||||
|
END IF;
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Deleted (' || rec.bucket_type || '): ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -140,37 +135,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting DEBT_DAILY files from HIST bucket...');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No DEBT_DAILY files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
-- Delete Parquet files from HIST bucket (only files matching export pattern)
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: DEBT_DAILY files deleted (' || vFileCount || ' file(s))');
|
||||||
-- Pattern matches: YYYYMM.parquet OR YYYYMM_1_timestamp.parquet
|
|
||||||
FOR rec IN (
|
|
||||||
SELECT object_name
|
|
||||||
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
|
|
||||||
credential_name => vCredentialName,
|
|
||||||
location_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT_DAILY/'
|
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
|
||||||
BEGIN
|
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
|
||||||
credential_name => vCredentialName,
|
|
||||||
object_uri => vHistBucketUri || 'ARCHIVE/CSDB/CSDB_DEBT_DAILY/' || rec.object_name
|
|
||||||
);
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
|
||||||
EXCEPTION
|
|
||||||
WHEN OTHERS THEN
|
|
||||||
IF SQLCODE = -20404 THEN
|
|
||||||
DBMS_OUTPUT.PUT_LINE(' Skipped (not found): ' || rec.object_name);
|
|
||||||
ELSE
|
|
||||||
RAISE;
|
|
||||||
END IF;
|
|
||||||
END;
|
|
||||||
END LOOP;
|
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: DEBT_DAILY files deleted');
|
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
@@ -17,29 +17,29 @@ PROMPT ========================================================================
|
|||||||
DECLARE
|
DECLARE
|
||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential
|
-- Get bucket URI and credential
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting INSTR_RAT_FULL files from HIST bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting INSTR_RAT_FULL files from HIST bucket...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
|
-- Delete files registered by MARS-835 process for INSTR_RAT_FULL
|
||||||
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-835'
|
||||||
location_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL/'
|
AND SOURCE_FILE_NAME LIKE '%INSTR_RAT_FULL%'
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
object_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL/' || rec.object_name
|
object_uri => vBucketUri || rec.object_name
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -50,7 +50,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: INSTR_RAT_FULL files deleted');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No INSTR_RAT_FULL files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: INSTR_RAT_FULL files deleted (' || vFileCount || ' file(s))');
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -61,29 +65,29 @@ PROMPT ========================================================================
|
|||||||
DECLARE
|
DECLARE
|
||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential
|
-- Get bucket URI and credential
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting INSTR_DESC_FULL files from HIST bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting INSTR_DESC_FULL files from HIST bucket...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
|
-- Delete files registered by MARS-835 process for INSTR_DESC_FULL
|
||||||
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-835'
|
||||||
location_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL/'
|
AND SOURCE_FILE_NAME LIKE '%INSTR_DESC_FULL%'
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
object_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL/' || rec.object_name
|
object_uri => vBucketUri || rec.object_name
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -94,7 +98,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: INSTR_DESC_FULL files deleted');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No INSTR_DESC_FULL files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: INSTR_DESC_FULL files deleted (' || vFileCount || ' file(s))');
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -105,29 +113,29 @@ PROMPT ========================================================================
|
|||||||
DECLARE
|
DECLARE
|
||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential
|
-- Get bucket URI and credential
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting ISSUER_RAT_FULL files from HIST bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting ISSUER_RAT_FULL files from HIST bucket...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
|
-- Delete files registered by MARS-835 process for ISSUER_RAT_FULL
|
||||||
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-835'
|
||||||
location_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL/'
|
AND SOURCE_FILE_NAME LIKE '%ISSUER_RAT_FULL%'
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
object_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL/' || rec.object_name
|
object_uri => vBucketUri || rec.object_name
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -138,7 +146,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: ISSUER_RAT_FULL files deleted');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No ISSUER_RAT_FULL files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: ISSUER_RAT_FULL files deleted (' || vFileCount || ' file(s))');
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
@@ -149,29 +161,29 @@ PROMPT ========================================================================
|
|||||||
DECLARE
|
DECLARE
|
||||||
vBucketUri VARCHAR2(500);
|
vBucketUri VARCHAR2(500);
|
||||||
vCredentialName VARCHAR2(100);
|
vCredentialName VARCHAR2(100);
|
||||||
|
vFileCount NUMBER := 0;
|
||||||
BEGIN
|
BEGIN
|
||||||
-- Get bucket URI and credential
|
-- Get bucket URI and credential
|
||||||
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
vBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ARCHIVE');
|
||||||
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('Deleting ISSUER_DESC_FULL files from HIST bucket...');
|
DBMS_OUTPUT.PUT_LINE('Deleting ISSUER_DESC_FULL files from HIST bucket...');
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' Using A_SOURCE_FILE_RECEIVED with PROCESS_NAME = ''MARS-835''');
|
||||||
|
|
||||||
|
-- Delete files registered by MARS-835 process for ISSUER_DESC_FULL
|
||||||
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-835'
|
||||||
location_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL/'
|
AND SOURCE_FILE_NAME LIKE '%ISSUER_DESC_FULL%'
|
||||||
))
|
|
||||||
WHERE object_name LIKE '%PARTITION_YEAR=%' -- Hive-style partitioning folders
|
|
||||||
AND object_name LIKE '%.parquet'
|
|
||||||
AND REGEXP_LIKE(object_name, '[0-9]{6}(_[0-9]+_[0-9]{8}T[0-9]{6,}Z)?\.parquet$') -- YYYYMM or YYYYMM_1_timestamp
|
|
||||||
) LOOP
|
) LOOP
|
||||||
BEGIN
|
BEGIN
|
||||||
DBMS_CLOUD.DELETE_OBJECT(
|
DBMS_CLOUD.DELETE_OBJECT(
|
||||||
credential_name => vCredentialName,
|
credential_name => vCredentialName,
|
||||||
object_uri => vBucketUri || 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL/' || rec.object_name
|
object_uri => vBucketUri || rec.object_name
|
||||||
);
|
);
|
||||||
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
DBMS_OUTPUT.PUT_LINE(' Deleted: ' || rec.object_name);
|
||||||
|
vFileCount := vFileCount + 1;
|
||||||
EXCEPTION
|
EXCEPTION
|
||||||
WHEN OTHERS THEN
|
WHEN OTHERS THEN
|
||||||
IF SQLCODE = -20404 THEN
|
IF SQLCODE = -20404 THEN
|
||||||
@@ -182,7 +194,11 @@ BEGIN
|
|||||||
END;
|
END;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: ISSUER_DESC_FULL files deleted');
|
IF vFileCount = 0 THEN
|
||||||
|
DBMS_OUTPUT.PUT_LINE(' INFO: No ISSUER_DESC_FULL files found to delete');
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
DBMS_OUTPUT.PUT_LINE('SUCCESS: ISSUER_DESC_FULL files deleted (' || vFileCount || ' file(s))');
|
||||||
END;
|
END;
|
||||||
/
|
/
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user