Update author information to Grzegorz Michalski in MARS-956 SQL scripts and remove pre-check script from installation process

This commit is contained in:
Grzegorz Michalski
2026-02-13 19:42:02 +01:00
parent d370b9c9ef
commit 5c77d42d9a
10 changed files with 9 additions and 303 deletions

View File

@@ -1,287 +0,0 @@
-- =====================================================================================
-- Script: 00_MARS_956_pre_check_prerequisites.sql
-- Purpose: Verify prerequisites for C2D MPEC data export
-- Author: System Generated
-- Created: 2026-02-12
-- MARS Issue: MARS-956
-- Target Locations: mrds_data_dev/ODS/C2D/
-- =====================================================================================
SET SERVEROUTPUT ON SIZE UNLIMITED;
SET FEEDBACK ON;
SET VERIFY OFF;
SET LINESIZE 200;
PROMPT =====================================================================================
PROMPT MARS-956 Pre-Check: Prerequisites for C2D MPEC Data Export
PROMPT =====================================================================================
DECLARE
vDataBucketUri VARCHAR2(500);
vCredentialName VARCHAR2(100);
vFileCount NUMBER := 0;
vAdminRows NUMBER := 0;
vContentRows NUMBER := 0;
vCriterionRows NUMBER := 0;
vAdminCols NUMBER := 0;
vContentCols NUMBER := 0;
vCriterionCols NUMBER := 0;
BEGIN
-- Get bucket URI and credential from FILE_MANAGER configuration
vDataBucketUri := CT_MRDS.FILE_MANAGER.GET_BUCKET_URI('ODS');
vCredentialName := CT_MRDS.ENV_MANAGER.gvCredentialName;
DBMS_OUTPUT.PUT_LINE('CHECK TIME: ' || TO_CHAR(SYSTIMESTAMP, 'YYYY-MM-DD HH24:MI:SS.FF3'));
DBMS_OUTPUT.PUT_LINE('ODS Bucket URI: ' || vDataBucketUri);
DBMS_OUTPUT.PUT_LINE('Credential: ' || vCredentialName);
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 1: Verify DATA_EXPORTER Package Version');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check DATA_EXPORTER version
BEGIN
DBMS_OUTPUT.PUT_LINE('DATA_EXPORTER Version: ' || CT_MRDS.DATA_EXPORTER.PACKAGE_VERSION);
DBMS_OUTPUT.PUT_LINE('Build Date: ' || CT_MRDS.DATA_EXPORTER.PACKAGE_BUILD_DATE);
DBMS_OUTPUT.PUT_LINE('SUCCESS: DATA_EXPORTER package is available');
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR: ERROR: DATA_EXPORTER package not available: ' || SQLERRM);
RAISE;
END;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 2: Verify Source Tables in OU_LEGACY_C2D Schema');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check source table row counts
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM OU_LEGACY_C2D.MPEC_ADMIN' INTO vAdminRows;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM OU_LEGACY_C2D.MPEC_CONTENT' INTO vContentRows;
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM OU_LEGACY_C2D.MPEC_CONTENT_CRITERION' INTO vCriterionRows;
DBMS_OUTPUT.PUT_LINE('Source table row counts:');
DBMS_OUTPUT.PUT_LINE('- MPEC_ADMIN: ' || vAdminRows || ' rows');
DBMS_OUTPUT.PUT_LINE('- MPEC_CONTENT: ' || vContentRows || ' rows');
DBMS_OUTPUT.PUT_LINE('- MPEC_CONTENT_CRITERION: ' || vCriterionRows || ' rows');
IF vAdminRows > 0 AND vContentRows > 0 AND vCriterionRows > 0 THEN
DBMS_OUTPUT.PUT_LINE('SUCCESS: All source tables have data');
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR: One or more source tables are empty');
END IF;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 3: Verify Template Tables in CT_ET_TEMPLATES Schema');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check template table structure
SELECT COUNT(*)
INTO vAdminCols
FROM all_tab_columns
WHERE owner = 'CT_ET_TEMPLATES'
AND table_name = 'C2D_MPEC_ADMIN';
SELECT COUNT(*)
INTO vContentCols
FROM all_tab_columns
WHERE owner = 'CT_ET_TEMPLATES'
AND table_name = 'C2D_MPEC_CONTENT';
SELECT COUNT(*)
INTO vCriterionCols
FROM all_tab_columns
WHERE owner = 'CT_ET_TEMPLATES'
AND table_name = 'C2D_MPEC_CONTENT_CRITERION';
DBMS_OUTPUT.PUT_LINE('Template table column counts:');
DBMS_OUTPUT.PUT_LINE('- C2D_MPEC_ADMIN: ' || vAdminCols || ' columns');
DBMS_OUTPUT.PUT_LINE('- C2D_MPEC_CONTENT: ' || vContentCols || ' columns');
DBMS_OUTPUT.PUT_LINE('- C2D_MPEC_CONTENT_CRITERION: ' || vCriterionCols || ' columns');
IF vAdminCols > 0 AND vContentCols > 0 AND vCriterionCols > 0 THEN
DBMS_OUTPUT.PUT_LINE('SUCCESS: All template tables have defined structure');
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR: One or more template tables missing columns');
END IF;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 4: Verify ETL Key References in A_LOAD_HISTORY');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check ETL key validation
DECLARE
vValidKeys NUMBER := 0;
vTotalSourceKeys NUMBER := 0;
BEGIN
-- Count total distinct ETL keys in source tables
SELECT COUNT(DISTINCT etl_key)
INTO vTotalSourceKeys
FROM (
SELECT A_ETL_LOAD_SET_FK AS etl_key FROM OU_LEGACY_C2D.MPEC_ADMIN
UNION
SELECT A_ETL_LOAD_SET_FK FROM OU_LEGACY_C2D.MPEC_CONTENT
UNION
SELECT A_ETL_LOAD_SET_FK FROM OU_LEGACY_C2D.MPEC_CONTENT_CRITERION
);
-- Count how many exist in A_LOAD_HISTORY
SELECT COUNT(DISTINCT etl_key)
INTO vValidKeys
FROM (
SELECT A_ETL_LOAD_SET_FK AS etl_key FROM OU_LEGACY_C2D.MPEC_ADMIN
UNION
SELECT A_ETL_LOAD_SET_FK FROM OU_LEGACY_C2D.MPEC_CONTENT
UNION
SELECT A_ETL_LOAD_SET_FK FROM OU_LEGACY_C2D.MPEC_CONTENT_CRITERION
) src
WHERE EXISTS (
SELECT 1 FROM CT_ODS.A_LOAD_HISTORY h
WHERE h.A_ETL_LOAD_SET_KEY = src.etl_key
);
DBMS_OUTPUT.PUT_LINE('ETL key validation:');
DBMS_OUTPUT.PUT_LINE('- Total distinct ETL keys in source: ' || vTotalSourceKeys);
DBMS_OUTPUT.PUT_LINE('- Valid keys (exist in A_LOAD_HISTORY): ' || vValidKeys);
IF vValidKeys = vTotalSourceKeys THEN
DBMS_OUTPUT.PUT_LINE('SUCCESS: All source ETL keys are valid');
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR: Some ETL keys may be invalid: ' || (vTotalSourceKeys - vValidKeys));
END IF;
END;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 5: Verify External Tables in ODS Schema (Target Readiness)');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check target external table accessibility and current record counts
DECLARE
vAdminExtCount NUMBER := -1;
vContentExtCount NUMBER := -1;
vCriterionExtCount NUMBER := -1;
BEGIN
-- Check if external tables exist and are accessible
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ODS.C2D_MPEC_ADMIN_ODS' INTO vAdminExtCount;
EXCEPTION
WHEN OTHERS THEN
-- Acceptable errors for empty external tables:
-- ORA-29913: error in executing ODCIEXTTABLEOPEN callout
-- ORA-29400: data cartridge error
-- KUP-13023: nothing matched wildcard query (no files)
IF SQLCODE IN (-29913, -29400) OR SQLERRM LIKE '%KUP-13023%' OR SQLERRM LIKE '%does not exist%' THEN
vAdminExtCount := 0; -- Empty/non-existent is OK
ELSE
vAdminExtCount := -1; -- Real error
END IF;
END;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ODS.C2D_MPEC_CONTENT_ODS' INTO vContentExtCount;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE IN (-29913, -29400) OR SQLERRM LIKE '%KUP-13023%' OR SQLERRM LIKE '%does not exist%' THEN
vContentExtCount := 0;
ELSE
vContentExtCount := -1;
END IF;
END;
BEGIN
EXECUTE IMMEDIATE 'SELECT COUNT(*) FROM ODS.C2D_MPEC_CONTENT_CRITERION_ODS' INTO vCriterionExtCount;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE IN (-29913, -29400) OR SQLERRM LIKE '%KUP-13023%' OR SQLERRM LIKE '%does not exist%' THEN
vCriterionExtCount := 0;
ELSE
vCriterionExtCount := -1;
END IF;
END;
DBMS_OUTPUT.PUT_LINE('Target external table current counts:');
DBMS_OUTPUT.PUT_LINE('- ODS.C2D_MPEC_ADMIN_ODS: ' ||
CASE WHEN vAdminExtCount = -1 THEN 'ERROR/INACCESSIBLE'
WHEN vAdminExtCount = 0 THEN '0 (empty/clean)'
ELSE TO_CHAR(vAdminExtCount) END);
DBMS_OUTPUT.PUT_LINE('- ODS.C2D_MPEC_CONTENT_ODS: ' ||
CASE WHEN vContentExtCount = -1 THEN 'ERROR/INACCESSIBLE'
WHEN vContentExtCount = 0 THEN '0 (empty/clean)'
ELSE TO_CHAR(vContentExtCount) END);
DBMS_OUTPUT.PUT_LINE('- ODS.C2D_MPEC_CONTENT_CRITERION_ODS: ' ||
CASE WHEN vCriterionExtCount = -1 THEN 'ERROR/INACCESSIBLE'
WHEN vCriterionExtCount = 0 THEN '0 (empty/clean)'
ELSE TO_CHAR(vCriterionExtCount) END);
IF vAdminExtCount >= 0 AND vContentExtCount >= 0 AND vCriterionExtCount >= 0 THEN
IF vAdminExtCount = 0 AND vContentExtCount = 0 AND vCriterionExtCount = 0 THEN
DBMS_OUTPUT.PUT_LINE('SUCCESS: All target external tables are clean (ready for fresh export)');
ELSE
DBMS_OUTPUT.PUT_LINE('WARNING: Target external tables contain data (' ||
(vAdminExtCount + vContentExtCount + vCriterionExtCount) || ' total records)');
DBMS_OUTPUT.PUT_LINE(' Consider rollback if this is a re-run');
END IF;
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR: Some external tables are inaccessible - check table definitions');
END IF;
END;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('Check 6: Check Existing Files in ODS/C2D Bucket');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
-- Check for existing C2D MPEC files
BEGIN
FOR rec IN (
SELECT object_name
FROM TABLE(DBMS_CLOUD.LIST_OBJECTS(
credential_name => vCredentialName,
location_uri => vDataBucketUri
))
WHERE object_name LIKE 'ODS/C2D/C2D_MPEC_%'
) LOOP
vFileCount := vFileCount + 1;
IF vFileCount = 1 THEN
DBMS_OUTPUT.PUT_LINE('Existing C2D MPEC files in ODS bucket:');
END IF;
DBMS_OUTPUT.PUT_LINE('- ' || rec.object_name);
END LOOP;
IF vFileCount = 0 THEN
DBMS_OUTPUT.PUT_LINE('SUCCESS: No existing C2D MPEC files found - ready for clean export');
ELSE
DBMS_OUTPUT.PUT_LINE('WARNING: Warning: ' || vFileCount || ' existing C2D MPEC files found');
DBMS_OUTPUT.PUT_LINE(' Consider rollback if this is a re-run');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR: ERROR checking existing files: ' || SQLERRM);
END;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('MARS-956 Pre-Check Summary');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
DBMS_OUTPUT.PUT_LINE('SUCCESS: DATA_EXPORTER package available');
DBMS_OUTPUT.PUT_LINE('SUCCESS: Source tables: ' || (vAdminRows + vContentRows + vCriterionRows) || ' total rows');
DBMS_OUTPUT.PUT_LINE('SUCCESS: Template tables: All structures defined');
DBMS_OUTPUT.PUT_LINE('SUCCESS: ETL keys: All validated in A_LOAD_HISTORY');
DBMS_OUTPUT.PUT_LINE('SUCCESS: External tables: Accessible and ready');
IF vFileCount > 0 THEN
DBMS_OUTPUT.PUT_LINE('WARNING: Existing files: ' || vFileCount || ' (consider rollback)');
ELSE
DBMS_OUTPUT.PUT_LINE('SUCCESS: Target bucket: Clean for export');
END IF;
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('Prerequisites check completed - ready to proceed with MARS-956 export');
DBMS_OUTPUT.PUT_LINE('=====================================================================================');
END;
/

View File

@@ -1,7 +1,7 @@
-- =====================================================================================
-- Script: 01_MARS_956_export_c2d_mpec_data.sql
-- Purpose: Export C2D MPEC historical data to ODS bucket
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Created: 2026-02-12
-- MARS Issue: MARS-956
-- Target: mrds_data_dev/ODS/C2D/

View File

@@ -2,7 +2,7 @@
-- MARS-956 Verify Exports: Check Export Results and File Creation
-- ===================================================================
-- Purpose: Verify that C2D MPEC export completed successfully
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
SET SERVEROUTPUT ON SIZE UNLIMITED

View File

@@ -2,7 +2,7 @@
-- MARS-956 Verify Data Integrity: Source vs Exported Data Validation
-- ===================================================================
-- Purpose: Verify data integrity between source tables and exported files
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
SET SERVEROUTPUT ON SIZE UNLIMITED

View File

@@ -3,7 +3,7 @@
--=============================================================================================================================
-- Purpose: Delete exported CSV files from ODS/C2D bucket folders for MPEC tables
-- WARNING: This will permanently delete exported data files!
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
-- Related: MARS-956 - C2D MPEC Data Export Rollback
--=============================================================================================================================

View File

@@ -2,7 +2,7 @@
-- MARS-956 Rollback Step 1: Delete File Registrations
-- ===================================================================
-- Purpose: Remove MARS-956 export file registrations from A_SOURCE_FILE_RECEIVED
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
SET SERVEROUTPUT ON SIZE UNLIMITED

View File

@@ -2,7 +2,7 @@
-- MARS-956 Rollback Step 2: Clean Process Logs
-- ===================================================================
-- Purpose: Remove MARS-956 process logs from A_PROCESS_LOG
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
SET SERVEROUTPUT ON SIZE UNLIMITED

View File

@@ -2,7 +2,7 @@
-- MARS-956 Rollback Verification: Confirm Rollback Completion
-- ===================================================================
-- Purpose: Verify that MARS-956 rollback completed successfully
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
SET SERVEROUTPUT ON SIZE UNLIMITED

View File

@@ -4,9 +4,8 @@
-- Purpose: One-time bulk export of 3 C2D MPEC tables from OU_LEGACY_C2D schema
-- to OCI buckets (ODS bucket CSV format)
-- Uses DATA_EXPORTER v2.7.5 with pRegisterExport for file registration
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
-- Version: 1.0.0
-- Dynamic spool file generation (using SYS_CONTEXT - no DBA privileges required)
-- Log files are automatically created in log/ subdirectory
@@ -58,12 +57,6 @@ END;
/
WHENEVER SQLERROR CONTINUE
PROMPT
PROMPT =========================================================================
PROMPT Pre-Check: Verify prerequisites and table readiness
PROMPT =========================================================================
@@00_MARS_956_pre_check_prerequisites.sql
PROMPT
PROMPT =========================================================================
PROMPT Step 1: Export C2D MPEC Data to ODS Bucket

View File

@@ -3,7 +3,7 @@
-- ===================================================================
-- Purpose: Rollback MARS-956 - Delete exported CSV files and file registrations
-- WARNING: This will DELETE all exported data files and registrations!
-- Author: System Generated
-- Author: Grzegorz Michalski
-- Date: 2026-02-12
-- Dynamic spool file generation (using SYS_CONTEXT - no DBA privileges required)