Init
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Update CSDB Encoding Configuration
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Change encoding for CSDB configurations from UTF8 to WE8MSWIN1252
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Why WE8MSWIN1252 for CSDB:
|
||||
-- - CSDB files contain international characters (Turkish: Türkiye, etc.)
|
||||
-- - Source system uses Windows-1252 encoding
|
||||
-- - Proper character handling requires matching encoding
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC: Update CSDB Encoding Configuration
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Step 1: Show current state
|
||||
PROMPT
|
||||
PROMPT Step 1: Current CSDB encoding configuration
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
TABLE_ID,
|
||||
SOURCE_FILE_ID,
|
||||
ENCODING AS CURRENT_ENCODING,
|
||||
TEMPLATE_TABLE_NAME
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%'
|
||||
ORDER BY TABLE_ID, SOURCE_FILE_ID;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 2: Update CSDB configurations to WE8MSWIN1252
|
||||
PROMPT ========================================
|
||||
|
||||
-- Update all CSDB configurations to Windows-1252 encoding
|
||||
UPDATE /*+ NOPARALLEL */ CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
SET ENCODING = 'WE8MSWIN1252'
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%';
|
||||
|
||||
PROMPT Updated CSDB configurations with WE8MSWIN1252 encoding
|
||||
|
||||
-- Commit changes
|
||||
COMMIT;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 3: Verify updated encoding configuration
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
TABLE_ID,
|
||||
SOURCE_FILE_ID,
|
||||
ENCODING AS NEW_ENCODING,
|
||||
TEMPLATE_TABLE_NAME
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%'
|
||||
ORDER BY TABLE_ID, SOURCE_FILE_ID;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 4: Overall encoding distribution
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
ENCODING,
|
||||
COUNT(*) AS CONFIG_COUNT,
|
||||
LISTAGG(DISTINCT TABLE_ID, ', ') WITHIN GROUP (ORDER BY TABLE_ID) AS TABLES
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
GROUP BY ENCODING
|
||||
ORDER BY ENCODING;
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT CSDB Encoding Update - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT Summary:
|
||||
PROMPT - All CSDB configurations updated to WE8MSWIN1252
|
||||
PROMPT - Encoding matches source system character set (Windows-1252)
|
||||
PROMPT - Proper handling of international characters enabled
|
||||
PROMPT
|
||||
PROMPT Next Step: Run 01_MARS_1049_ADHOC_drop_external_tables.sql
|
||||
PROMPT =========================================================================
|
||||
@@ -0,0 +1,94 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Drop External Tables for CSDB Encoding Change
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Drop existing CSDB external tables before recreation with proper encoding parameter
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support)
|
||||
--
|
||||
-- Tables to be dropped (16 total - existing and non-existing):
|
||||
-- - CSDB_DEBT: ARCHIVE, INBOX, ODS
|
||||
-- - CSDB_DEBT_DAILY: ARCHIVE, INBOX, ODS
|
||||
-- - CSDB_INSTR_DESC_FULL: ARCHIVE, INBOX, ODS
|
||||
-- - CSDB_INSTR_RAT_FULL: ARCHIVE, ODS
|
||||
-- - CSDB_ISSUER_DESC_FULL: ARCHIVE, ODS
|
||||
-- - CSDB_ISSUER_RAT_FULL: ARCHIVE, INBOX, ODS
|
||||
--
|
||||
-- Note: Script handles both existing and non-existing tables gracefully
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
DECLARE
|
||||
TYPE t_string_array IS TABLE OF VARCHAR2(100);
|
||||
|
||||
-- Define list of tables to drop (16 total)
|
||||
vTableList t_string_array := t_string_array(
|
||||
'CSDB_DEBT_ARCHIVE',
|
||||
'CSDB_DEBT_INBOX',
|
||||
'CSDB_DEBT_ODS',
|
||||
|
||||
'CSDB_DEBT_DAILY_ARCHIVE',
|
||||
'CSDB_DEBT_DAILY_INBOX',
|
||||
'CSDB_DEBT_DAILY_ODS',
|
||||
|
||||
'CSDB_INSTR_DESC_FULL_ARCHIVE',
|
||||
'CSDB_INSTR_DESC_FULL_INBOX',
|
||||
'CSDB_INSTR_DESC_FULL_ODS',
|
||||
|
||||
'CSDB_INSTR_RAT_FULL_ARCHIVE',
|
||||
'CSDB_INSTR_RAT_FULL_INBOX',
|
||||
'CSDB_INSTR_RAT_FULL_ODS',
|
||||
|
||||
'CSDB_ISSUER_DESC_FULL_ARCHIVE',
|
||||
'CSDB_ISSUER_DESC_FULL_INBOX',
|
||||
'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
|
||||
'CSDB_ISSUER_RAT_FULL_ARCHIVE',
|
||||
'CSDB_ISSUER_RAT_FULL_INBOX',
|
||||
'CSDB_ISSUER_RAT_FULL_ODS'
|
||||
);
|
||||
|
||||
vDroppedCount NUMBER := 0;
|
||||
vSkippedCount NUMBER := 0;
|
||||
vErrorCount NUMBER := 0;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('MARS-1049-ADHOC: Drop CSDB External Tables');
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('Tables to process: ' || vTableList.COUNT);
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
|
||||
-- Loop through table list
|
||||
FOR i IN 1..vTableList.COUNT LOOP
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'DROP TABLE ODS.' || vTableList(i);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Dropped ODS.' || vTableList(i));
|
||||
vDroppedCount := vDroppedCount + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
IF SQLCODE = -942 THEN
|
||||
DBMS_OUTPUT.PUT_LINE('INFO: Table ODS.' || vTableList(i) || ' does not exist - skipping');
|
||||
vSkippedCount := vSkippedCount + 1;
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE('ERROR: Failed to drop ODS.' || vTableList(i) || ' - ' || SQLERRM);
|
||||
vErrorCount := vErrorCount + 1;
|
||||
RAISE;
|
||||
END IF;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('Drop External Tables - COMPLETED');
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('Summary:');
|
||||
DBMS_OUTPUT.PUT_LINE('- Tables processed: ' || vTableList.COUNT);
|
||||
DBMS_OUTPUT.PUT_LINE('- Tables dropped: ' || vDroppedCount);
|
||||
DBMS_OUTPUT.PUT_LINE('- Tables skipped: ' || vSkippedCount);
|
||||
DBMS_OUTPUT.PUT_LINE('- Errors: ' || vErrorCount);
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('Next Step: Run 02_MARS_1049_ADHOC_recreate_external_tables.sql');
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
END;
|
||||
/
|
||||
@@ -0,0 +1,297 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Recreate External Tables for CSDB with Encoding Support
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Recreate CSDB external tables with proper pEncoding parameter (WE8MSWIN1252)
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Tables to be created (5 existing + 11 missing = 16 total):
|
||||
-- CSDB_DEBT: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_DEBT_DAILY: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
--
|
||||
-- Prerequisites:
|
||||
-- - Template tables must exist in CT_ET_TEMPLATES schema
|
||||
-- - FILE_MANAGER_ODS v2.1.0+ with pEncoding parameter support
|
||||
-- - Proper bucket URIs configured in ENV_MANAGER
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
PROMPT ========================================================
|
||||
PROMPT Step 1: Create CSDB_DEBT External Tables with Encoding
|
||||
PROMPT ========================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'INBOX/CSDB/CentralizedSecuritiesDissemination/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'ODS/CSDB/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ================================================================
|
||||
PROMPT Step 2: Create CSDB_DEBT_DAILY External Tables with Encoding
|
||||
PROMPT ================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'INBOX/CSDB/CentralizedSecuritiesDailyReferenceDataDissemination/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'ODS/CSDB/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ========================================================================
|
||||
PROMPT Step 3: Create CSDB_INSTR_DESC_FULL External Tables with Encoding
|
||||
PROMPT ========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ========================================================================
|
||||
PROMPT Step 4: Create CSDB_INSTR_RAT_FULL External Tables with Encoding
|
||||
PROMPT ========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 5: Create CSDB_ISSUER_DESC_FULL External Tables with Encoding
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 6: Create CSDB_ISSUER_RAT_FULL External Tables with Encoding
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_INBOX with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_ODS with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'WE8MSWIN1252'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_ARCHIVE with encoding WE8MSWIN1252');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Recreate External Tables with Encoding - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT Summary:
|
||||
PROMPT - CSDB_DEBT tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_DEBT_DAILY tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_INSTR_DESC_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_INSTR_RAT_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_ISSUER_DESC_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_ISSUER_RAT_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - Total: 18 external tables created with WE8MSWIN1252 encoding
|
||||
PROMPT
|
||||
PROMPT Next Step: Run 03_MARS_1049_ADHOC_verify_external_tables.sql
|
||||
PROMPT =========================================================================
|
||||
@@ -0,0 +1,184 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Verify CSDB External Tables Creation
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Verify all 18 CSDB external tables exist with correct configuration
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Expected Tables (18 total):
|
||||
-- CSDB_DEBT: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_DEBT_DAILY: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
--=============================================================================================================================
|
||||
|
||||
SET LINESIZE 200
|
||||
SET PAGESIZE 100
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC: External Tables Verification Report
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
|
||||
PROMPT ========================================
|
||||
PROMPT Step 1: Check External Tables Existence
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
owner,
|
||||
table_name,
|
||||
CASE
|
||||
WHEN table_name LIKE '%_INBOX' THEN 'INBOX'
|
||||
WHEN table_name LIKE '%_ODS' THEN 'ODS'
|
||||
WHEN table_name LIKE '%_ARCHIVE' THEN 'ARCHIVE'
|
||||
END AS bucket_area,
|
||||
default_directory_name AS directory,
|
||||
type_name
|
||||
FROM all_external_tables
|
||||
WHERE owner = 'ODS'
|
||||
AND table_name IN (
|
||||
'CSDB_DEBT_ARCHIVE',
|
||||
'CSDB_DEBT_INBOX',
|
||||
'CSDB_DEBT_ODS',
|
||||
'CSDB_DEBT_DAILY_ARCHIVE',
|
||||
'CSDB_DEBT_DAILY_INBOX',
|
||||
'CSDB_DEBT_DAILY_ODS',
|
||||
'CSDB_INSTR_DESC_FULL_ARCHIVE',
|
||||
'CSDB_INSTR_DESC_FULL_INBOX',
|
||||
'CSDB_INSTR_DESC_FULL_ODS',
|
||||
'CSDB_INSTR_RAT_FULL_ARCHIVE',
|
||||
'CSDB_INSTR_RAT_FULL_INBOX',
|
||||
'CSDB_INSTR_RAT_FULL_ODS',
|
||||
'CSDB_ISSUER_DESC_FULL_ARCHIVE',
|
||||
'CSDB_ISSUER_DESC_FULL_INBOX',
|
||||
'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
'CSDB_ISSUER_RAT_FULL_ARCHIVE',
|
||||
'CSDB_ISSUER_RAT_FULL_INBOX',
|
||||
'CSDB_ISSUER_RAT_FULL_ODS'
|
||||
)
|
||||
ORDER BY table_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT Step 2: Verify Table Counts by Category
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
CASE
|
||||
WHEN table_name LIKE 'CSDB_DEBT_DAILY%' THEN 'CSDB_DEBT_DAILY'
|
||||
WHEN table_name LIKE 'CSDB_DEBT%' THEN 'CSDB_DEBT'
|
||||
WHEN table_name LIKE 'CSDB_INSTR_DESC_FULL%' THEN 'CSDB_INSTR_DESC_FULL'
|
||||
WHEN table_name LIKE 'CSDB_INSTR_RAT_FULL%' THEN 'CSDB_INSTR_RAT_FULL'
|
||||
WHEN table_name LIKE 'CSDB_ISSUER_DESC_FULL%' THEN 'CSDB_ISSUER_DESC_FULL'
|
||||
WHEN table_name LIKE 'CSDB_ISSUER_RAT_FULL%' THEN 'CSDB_ISSUER_RAT_FULL'
|
||||
END AS table_category,
|
||||
COUNT(*) AS table_count,
|
||||
CASE WHEN COUNT(*) = 3 THEN 'COMPLETE' ELSE 'INCOMPLETE' END AS status
|
||||
FROM all_external_tables
|
||||
WHERE owner = 'ODS'
|
||||
AND table_name IN (
|
||||
'CSDB_DEBT_ARCHIVE', 'CSDB_DEBT_INBOX', 'CSDB_DEBT_ODS',
|
||||
'CSDB_DEBT_DAILY_ARCHIVE', 'CSDB_DEBT_DAILY_INBOX', 'CSDB_DEBT_DAILY_ODS',
|
||||
'CSDB_INSTR_DESC_FULL_ARCHIVE', 'CSDB_INSTR_DESC_FULL_INBOX', 'CSDB_INSTR_DESC_FULL_ODS',
|
||||
'CSDB_INSTR_RAT_FULL_ARCHIVE', 'CSDB_INSTR_RAT_FULL_INBOX', 'CSDB_INSTR_RAT_FULL_ODS',
|
||||
'CSDB_ISSUER_DESC_FULL_ARCHIVE', 'CSDB_ISSUER_DESC_FULL_INBOX', 'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
'CSDB_ISSUER_RAT_FULL_ARCHIVE', 'CSDB_ISSUER_RAT_FULL_INBOX', 'CSDB_ISSUER_RAT_FULL_ODS'
|
||||
)
|
||||
GROUP BY
|
||||
CASE
|
||||
WHEN table_name LIKE 'CSDB_DEBT_DAILY%' THEN 'CSDB_DEBT_DAILY'
|
||||
WHEN table_name LIKE 'CSDB_DEBT%' THEN 'CSDB_DEBT'
|
||||
WHEN table_name LIKE 'CSDB_INSTR_DESC_FULL%' THEN 'CSDB_INSTR_DESC_FULL'
|
||||
WHEN table_name LIKE 'CSDB_INSTR_RAT_FULL%' THEN 'CSDB_INSTR_RAT_FULL'
|
||||
WHEN table_name LIKE 'CSDB_ISSUER_DESC_FULL%' THEN 'CSDB_ISSUER_DESC_FULL'
|
||||
WHEN table_name LIKE 'CSDB_ISSUER_RAT_FULL%' THEN 'CSDB_ISSUER_RAT_FULL'
|
||||
END
|
||||
ORDER BY table_category;
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT Step 3: Overall Summary
|
||||
PROMPT ========================================
|
||||
|
||||
DECLARE
|
||||
v_total_count NUMBER;
|
||||
v_expected_count NUMBER := 18;
|
||||
v_status VARCHAR2(20);
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_total_count
|
||||
FROM all_external_tables
|
||||
WHERE owner = 'ODS'
|
||||
AND table_name IN (
|
||||
'CSDB_DEBT_ARCHIVE', 'CSDB_DEBT_INBOX', 'CSDB_DEBT_ODS',
|
||||
'CSDB_DEBT_DAILY_ARCHIVE', 'CSDB_DEBT_DAILY_INBOX', 'CSDB_DEBT_DAILY_ODS',
|
||||
'CSDB_INSTR_DESC_FULL_ARCHIVE', 'CSDB_INSTR_DESC_FULL_INBOX', 'CSDB_INSTR_DESC_FULL_ODS',
|
||||
'CSDB_INSTR_RAT_FULL_ARCHIVE', 'CSDB_INSTR_RAT_FULL_INBOX', 'CSDB_INSTR_RAT_FULL_ODS',
|
||||
'CSDB_ISSUER_DESC_FULL_ARCHIVE', 'CSDB_ISSUER_DESC_FULL_INBOX', 'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
'CSDB_ISSUER_RAT_FULL_ARCHIVE', 'CSDB_ISSUER_RAT_FULL_INBOX', 'CSDB_ISSUER_RAT_FULL_ODS'
|
||||
);
|
||||
|
||||
IF v_total_count = v_expected_count THEN
|
||||
v_status := 'SUCCESS';
|
||||
ELSE
|
||||
v_status := 'FAILED';
|
||||
END IF;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('VERIFICATION STATUS: ' || v_status);
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
DBMS_OUTPUT.PUT_LINE('Expected Tables: ' || v_expected_count);
|
||||
DBMS_OUTPUT.PUT_LINE('Found Tables: ' || v_total_count);
|
||||
DBMS_OUTPUT.PUT_LINE('Missing Tables: ' || (v_expected_count - v_total_count));
|
||||
DBMS_OUTPUT.PUT_LINE('=========================================================================');
|
||||
|
||||
IF v_total_count = v_expected_count THEN
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('All 18 CSDB external tables created successfully with WE8MSWIN1252 encoding');
|
||||
DBMS_OUTPUT.PUT_LINE('MARS-1049-ADHOC deployment completed successfully');
|
||||
ELSE
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('WARNING: Not all tables were created. Review errors from step 02.');
|
||||
RAISE_APPLICATION_ERROR(-20001, 'External tables verification failed');
|
||||
END IF;
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT Step 4: Check Missing Tables (if any)
|
||||
PROMPT ========================================
|
||||
|
||||
WITH expected_tables AS (
|
||||
SELECT 'CSDB_DEBT_ARCHIVE' AS table_name FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_DEBT_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_DEBT_ODS' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_DEBT_DAILY_ARCHIVE' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_DEBT_DAILY_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_DEBT_DAILY_ODS' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_DESC_FULL_ARCHIVE' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_DESC_FULL_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_DESC_FULL_ODS' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_RAT_FULL_ARCHIVE' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_RAT_FULL_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_INSTR_RAT_FULL_ODS' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_DESC_FULL_ARCHIVE' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_DESC_FULL_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_DESC_FULL_ODS' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_RAT_FULL_ARCHIVE' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_RAT_FULL_INBOX' FROM DUAL UNION ALL
|
||||
SELECT 'CSDB_ISSUER_RAT_FULL_ODS' FROM DUAL
|
||||
)
|
||||
SELECT e.table_name AS missing_table
|
||||
FROM expected_tables e
|
||||
LEFT JOIN all_external_tables t ON e.table_name = t.table_name AND t.owner = 'ODS'
|
||||
WHERE t.table_name IS NULL
|
||||
ORDER BY e.table_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Verification Report Complete
|
||||
PROMPT =========================================================================
|
||||
@@ -0,0 +1,84 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Rollback CSDB Encoding Configuration
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Rollback CSDB encoding from WE8MSWIN1252 to UTF8
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Use Case: Restore original UTF8 encoding if WE8MSWIN1252 causes issues
|
||||
--
|
||||
-- WARNING: External tables must be recreated after encoding change
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC: Rollback CSDB Encoding to UTF8
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Step 1: Show current state
|
||||
PROMPT
|
||||
PROMPT Step 1: Current CSDB encoding configuration
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
TABLE_ID,
|
||||
SOURCE_FILE_ID,
|
||||
ENCODING AS CURRENT_ENCODING,
|
||||
TEMPLATE_TABLE_NAME
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%'
|
||||
ORDER BY TABLE_ID, SOURCE_FILE_ID;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 2: Rollback CSDB configurations to UTF8
|
||||
PROMPT ========================================
|
||||
|
||||
-- Rollback all CSDB configurations to UTF8 encoding
|
||||
UPDATE /*+ NOPARALLEL */ CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
SET ENCODING = 'UTF8'
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%';
|
||||
|
||||
PROMPT Rolled back CSDB configurations to UTF8 encoding
|
||||
|
||||
-- Commit changes
|
||||
COMMIT;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 3: Verify rolled back encoding configuration
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
TABLE_ID,
|
||||
SOURCE_FILE_ID,
|
||||
ENCODING AS RESTORED_ENCODING,
|
||||
TEMPLATE_TABLE_NAME
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
WHERE TEMPLATE_TABLE_NAME LIKE '%CSDB%'
|
||||
ORDER BY TABLE_ID, SOURCE_FILE_ID;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 4: Overall encoding distribution
|
||||
PROMPT ========================================
|
||||
|
||||
SELECT
|
||||
ENCODING,
|
||||
COUNT(*) AS CONFIG_COUNT,
|
||||
LISTAGG(DISTINCT TABLE_ID, ', ') WITHIN GROUP (ORDER BY TABLE_ID) AS TABLES
|
||||
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
||||
GROUP BY ENCODING
|
||||
ORDER BY ENCODING;
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT CSDB Encoding Rollback - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT Summary:
|
||||
PROMPT - All CSDB configurations rolled back to UTF8
|
||||
PROMPT - Original encoding restored
|
||||
PROMPT
|
||||
PROMPT IMPORTANT: External tables must be recreated with new encoding
|
||||
PROMPT - Use MARS-821 scripts to recreate external tables with UTF8
|
||||
PROMPT =========================================================================
|
||||
@@ -0,0 +1,297 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Recreate External Tables with UTF8 Encoding (Rollback Step)
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Recreate CSDB external tables with UTF8 encoding (original encoding)
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Tables to be created (18 total with UTF8 encoding):
|
||||
-- CSDB_DEBT: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_DEBT_DAILY: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_INSTR_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_DESC_FULL: INBOX, ODS, ARCHIVE
|
||||
-- CSDB_ISSUER_RAT_FULL: INBOX, ODS, ARCHIVE
|
||||
--
|
||||
-- Prerequisites:
|
||||
-- - Template tables must exist in CT_ET_TEMPLATES schema
|
||||
-- - FILE_MANAGER_ODS v2.1.0+ with pEncoding parameter support
|
||||
-- - Proper bucket URIs configured in ENV_MANAGER
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
|
||||
PROMPT ========================================================
|
||||
PROMPT Step 1: Create CSDB_DEBT External Tables with UTF8
|
||||
PROMPT ========================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'INBOX/CSDB/CentralizedSecuritiesDissemination/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'ODS/CSDB/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_DEBT',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ================================================================
|
||||
PROMPT Step 2: Create CSDB_DEBT_DAILY External Tables with UTF8
|
||||
PROMPT ================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'INBOX/CSDB/CentralizedSecuritiesDailyReferenceDataDissemination/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'ODS/CSDB/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_DEBT_DAILY_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_DEBT_DAILY',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_DEBT_DAILY',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_DEBT_DAILY_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ========================================================================
|
||||
PROMPT Step 3: Create CSDB_INSTR_DESC_FULL External Tables with UTF8
|
||||
PROMPT ========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_DESC_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_DESC_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_INSTR_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_DESC_FULL_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT ========================================================================
|
||||
PROMPT Step 4: Create CSDB_INSTR_RAT_FULL External Tables with UTF8
|
||||
PROMPT ========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_INSTR_RAT_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_INSTR_RAT_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_INSTR_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_INSTR_RAT_FULL_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 5: Create CSDB_ISSUER_DESC_FULL External Tables with UTF8
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_DESC_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_DESC_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_ISSUER_DESC_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_DESC_FULL_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 6: Create CSDB_ISSUER_RAT_FULL External Tables with UTF8
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- INBOX - For incoming files awaiting processing
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_INBOX',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'INBOX/CSDB/FullRatingsDissemination/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvInboxBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_INBOX with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ODS - For processed files in operational data store
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_ODS',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'ODS/CSDB/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvDataBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_ODS with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
-- ARCHIVE - For historical/archived files
|
||||
BEGIN
|
||||
ODS.FILE_MANAGER_ODS.CREATE_EXTERNAL_TABLE(
|
||||
pTableName => 'CSDB_ISSUER_RAT_FULL_ARCHIVE',
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.CSDB_ISSUER_RAT_FULL',
|
||||
pPrefix => 'ARCHIVE/CSDB/CSDB_ISSUER_RAT_FULL',
|
||||
pBucketUri => CT_MRDS.ENV_MANAGER.gvArchiveBucketUri,
|
||||
pEncoding => 'UTF8'
|
||||
);
|
||||
DBMS_OUTPUT.PUT_LINE('SUCCESS: Created ODS.CSDB_ISSUER_RAT_FULL_ARCHIVE with encoding UTF8');
|
||||
END;
|
||||
/
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Recreate External Tables with UTF8 - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT Summary:
|
||||
PROMPT - CSDB_DEBT tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_DEBT_DAILY tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_INSTR_DESC_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_INSTR_RAT_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_ISSUER_DESC_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - CSDB_ISSUER_RAT_FULL tables: 3 created (INBOX, ODS, ARCHIVE)
|
||||
PROMPT - Total: 18 external tables created with UTF8 encoding
|
||||
PROMPT
|
||||
PROMPT Next Step: Run 03_MARS_1049_ADHOC_verify_external_tables.sql
|
||||
PROMPT =========================================================================
|
||||
102
MARS_Packages/REL01/MARS-1049-ADHOC/install_mars1049_adhoc.sql
Normal file
102
MARS_Packages/REL01/MARS-1049-ADHOC/install_mars1049_adhoc.sql
Normal file
@@ -0,0 +1,102 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Master Installation Script
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Execute all MARS-1049-ADHOC scripts to recreate CSDB external tables with encoding support
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Prerequisites:
|
||||
-- - FILE_MANAGER v3.2.1+ with pEncoding parameter support
|
||||
-- - FILE_MANAGER_ODS v2.1.0+ with pEncoding parameter support
|
||||
-- - Template tables exist in CT_ET_TEMPLATES schema
|
||||
-- - Proper bucket URIs configured in ENV_MANAGER
|
||||
-- - Execute as ODS user or with sufficient privileges
|
||||
--
|
||||
-- Deployment Sequence:
|
||||
-- Step 1: Drop existing CSDB external tables
|
||||
-- Step 2: Recreate all 18 CSDB external tables with WE8MSWIN1252 encoding
|
||||
-- Step 3: Verify all tables created successfully
|
||||
--
|
||||
-- Rollback:
|
||||
-- No rollback script provided - tables can be recreated using MARS-821 scripts if needed
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
SET ECHO ON
|
||||
SET VERIFY OFF
|
||||
|
||||
-- ===================================================================
|
||||
-- MARS-1049-ADHOC INSTALL SCRIPT: CSDB External Tables Encoding Update
|
||||
-- ===================================================================
|
||||
-- Purpose: Recreate CSDB external tables with WE8MSWIN1252 encoding
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Version: 1.0.0
|
||||
|
||||
-- Dynamic spool file generation (using SYS_CONTEXT - no DBA privileges required)
|
||||
var filename VARCHAR2(100)
|
||||
BEGIN
|
||||
:filename := 'INSTALL_MARS_1049_ADHOC_' || SYS_CONTEXT('USERENV', 'CON_NAME') || '_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS') || '.log';
|
||||
END;
|
||||
/
|
||||
column filename new_value _filename
|
||||
select :filename filename from dual;
|
||||
spool &_filename
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC: CSDB External Tables Encoding Update
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT This script will:
|
||||
PROMPT - Update CSDB configurations to WE8MSWIN1252 encoding
|
||||
PROMPT - Drop existing CSDB external tables (if any)
|
||||
PROMPT - Recreate 18 CSDB external tables with WE8MSWIN1252 encoding
|
||||
PROMPT - Verify successful creation
|
||||
PROMPT
|
||||
PROMPT Expected Duration: 2-3 minutes
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 0: Update CSDB Encoding Configuration
|
||||
PROMPT =========================================================================
|
||||
@@00_MARS_1049_ADHOC_update_encoding.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 1: Drop Existing CSDB External Tables
|
||||
PROMPT =========================================================================
|
||||
@@01_MARS_1049_ADHOC_drop_external_tables.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 2: Recreate CSDB External Tables with Encoding
|
||||
PROMPT =========================================================================
|
||||
@@02_MARS_1049_ADHOC_recreate_external_tables.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 3: Verify External Tables Creation
|
||||
PROMPT =========================================================================
|
||||
@@03_MARS_1049_ADHOC_verify_external_tables.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC Installation - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT Check the log file for complete installation details.
|
||||
PROMPT =========================================================================
|
||||
|
||||
spool off
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC Installation Complete
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT All CSDB external tables have been updated with WE8MSWIN1252 encoding.
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
|
||||
quit;
|
||||
106
MARS_Packages/REL01/MARS-1049-ADHOC/rollback_mars1049_adhoc.sql
Normal file
106
MARS_Packages/REL01/MARS-1049-ADHOC/rollback_mars1049_adhoc.sql
Normal file
@@ -0,0 +1,106 @@
|
||||
--=============================================================================================================================
|
||||
-- MARS-1049-ADHOC: Master Rollback Script
|
||||
--=============================================================================================================================
|
||||
-- Purpose: Rollback CSDB external tables encoding changes from WE8MSWIN1252 to UTF8
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Related: MARS-1049 (CSV Encoding Support), MARS-821 (Original CSDB Setup)
|
||||
--
|
||||
-- Prerequisites:
|
||||
-- - FILE_MANAGER v3.2.1+ with pEncoding parameter support
|
||||
-- - FILE_MANAGER_ODS v2.1.0+ with pEncoding parameter support
|
||||
-- - Template tables exist in CT_ET_TEMPLATES schema
|
||||
-- - Proper bucket URIs configured in ENV_MANAGER
|
||||
-- - Execute as ODS user or with sufficient privileges
|
||||
--
|
||||
-- Rollback Sequence:
|
||||
-- Step 1: Rollback CSDB configurations to UTF8 encoding
|
||||
-- Step 2: Drop CSDB external tables with WE8MSWIN1252 encoding
|
||||
-- Step 3: Recreate CSDB external tables with UTF8 encoding (using MARS-821 patterns)
|
||||
-- Step 4: Verify all tables created successfully
|
||||
--
|
||||
-- Post-Rollback:
|
||||
-- - CSDB configurations restored to UTF8
|
||||
-- - External tables recreated with UTF8 encoding
|
||||
-- - System restored to pre-MARS-1049-ADHOC state
|
||||
--=============================================================================================================================
|
||||
|
||||
SET SERVEROUTPUT ON
|
||||
SET ECHO ON
|
||||
SET VERIFY OFF
|
||||
|
||||
-- ===================================================================
|
||||
-- MARS-1049-ADHOC ROLLBACK SCRIPT: Restore UTF8 Encoding for CSDB
|
||||
-- ===================================================================
|
||||
-- Purpose: Rollback CSDB external tables to UTF8 encoding
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2025-11-26
|
||||
-- Version: 1.0.0
|
||||
|
||||
-- Dynamic spool file generation (using SYS_CONTEXT - no DBA privileges required)
|
||||
var filename VARCHAR2(100)
|
||||
BEGIN
|
||||
:filename := 'ROLLBACK_MARS_1049_ADHOC_' || SYS_CONTEXT('USERENV', 'CON_NAME') || '_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MISS') || '.log';
|
||||
END;
|
||||
/
|
||||
column filename new_value _filename
|
||||
select :filename filename from dual;
|
||||
spool &_filename
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC: Rollback to UTF8 Encoding
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT This script will:
|
||||
PROMPT - Rollback CSDB configurations to UTF8 encoding
|
||||
PROMPT - Drop existing CSDB external tables (WE8MSWIN1252)
|
||||
PROMPT - Recreate 18 CSDB external tables with UTF8 encoding
|
||||
PROMPT - Verify successful rollback
|
||||
PROMPT
|
||||
PROMPT Expected Duration: 2-3 minutes
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 1: Rollback CSDB Encoding Configuration to UTF8
|
||||
PROMPT =========================================================================
|
||||
@@91_MARS_1049_ADHOC_rollback_encoding.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 2: Drop Existing CSDB External Tables
|
||||
PROMPT =========================================================================
|
||||
@@01_MARS_1049_ADHOC_drop_external_tables.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 3: Recreate CSDB External Tables with UTF8 Encoding
|
||||
PROMPT =========================================================================
|
||||
@@92_MARS_1049_ADHOC_recreate_tables_utf8.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT Step 4: Verify External Tables Creation
|
||||
PROMPT =========================================================================
|
||||
@@03_MARS_1049_ADHOC_verify_external_tables.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC Rollback - COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT Check the log file for complete rollback details.
|
||||
PROMPT =========================================================================
|
||||
|
||||
spool off
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-1049-ADHOC Rollback Complete
|
||||
PROMPT =========================================================================
|
||||
PROMPT
|
||||
PROMPT All CSDB external tables have been restored to UTF8 encoding.
|
||||
PROMPT System returned to pre-MARS-1049-ADHOC state.
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
|
||||
quit;
|
||||
Reference in New Issue
Block a user