pierwsza wersja paczki MARS-956
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
-- ===================================================================
|
||||
-- MARS-956: Export Historical C2D MPEC Data to DATA Bucket
|
||||
-- ===================================================================
|
||||
-- Purpose: One-time export of historical C2D MPEC delta data from
|
||||
-- OU_C2D operational database to DATA bucket as CSV files
|
||||
-- Method: Using DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE procedure
|
||||
-- Target: DATA bucket with folder structure ODS/C2D/{TABLE_NAME}
|
||||
-- Format: CSV files for complete historical data access
|
||||
-- ===================================================================
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956: Starting C2D MPEC Historical Data Export
|
||||
PROMPT =========================================================================
|
||||
PROMPT Export Strategy:
|
||||
PROMPT - Source: OU_C2D schema tables (operational database)
|
||||
PROMPT - Target: DATA bucket as CSV files
|
||||
PROMPT - Method: DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE
|
||||
PROMPT - Structure: Must match ODS template tables
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Log export start
|
||||
INSERT INTO CT_MRDS.A_PROCESS_LOG (PACKAGE_NAME, PROCEDURE_NAME, EVENT_TYPE, EVENT_MESSAGE, PROCEDURE_PARAMETERS)
|
||||
VALUES ('MARS-956', 'EXPORT_C2D_MPEC_DATA', 'INFO', 'Starting historical C2D MPEC data export',
|
||||
'Tables: MPEC_ADMIN, MPEC_CONTENT, MPEC_CONTENT_CRITERION');
|
||||
COMMIT;
|
||||
|
||||
-- ===================================================================
|
||||
-- TABLE 1: OU_C2D.MPEC_ADMIN -> ODS/C2D/C2D_MPEC_ADMIN
|
||||
-- ===================================================================
|
||||
|
||||
PROMPT Exporting Table 1/3: OU_C2D.MPEC_ADMIN
|
||||
PROMPT Target: mrds_data_dev/ODS/C2D/C2D_MPEC_ADMIN
|
||||
|
||||
BEGIN
|
||||
CT_MRDS.DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE(
|
||||
pSchemaName => 'OU_C2D',
|
||||
pTableName => 'MPEC_ADMIN',
|
||||
pKeyColumnName => 'A_WORKFLOW_HISTORY_KEY', -- Adjust if different
|
||||
pBucketArea => 'DATA',
|
||||
pFolderName => 'ODS/C2D/C2D_MPEC_ADMIN',
|
||||
pColumnList => NULL, -- Use all columns
|
||||
pMinDate => DATE '2020-01-01', -- Full historical range
|
||||
pMaxDate => SYSDATE, -- Up to current date
|
||||
pParallelDegree => 1, -- Sequential for safety
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_ADMIN', -- Template for mapping
|
||||
pCredentialName => 'DEF_CRED_ARN'
|
||||
);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('✓ MPEC_ADMIN export completed successfully');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('✗ MPEC_ADMIN export failed: ' || SQLERRM);
|
||||
-- Log error but continue with other tables
|
||||
INSERT INTO CT_MRDS.A_PROCESS_LOG (PACKAGE_NAME, PROCEDURE_NAME, EVENT_TYPE, EVENT_MESSAGE)
|
||||
VALUES ('MARS-956', 'EXPORT_MPEC_ADMIN', 'ERROR', 'Export failed: ' || SQLERRM);
|
||||
COMMIT;
|
||||
RAISE;
|
||||
END;
|
||||
/
|
||||
|
||||
-- ===================================================================
|
||||
-- TABLE 2: OU_C2D.MPEC_CONTENT -> ODS/C2D/C2D_MPEC_CONTENT
|
||||
-- ===================================================================
|
||||
|
||||
PROMPT Exporting Table 2/3: OU_C2D.MPEC_CONTENT
|
||||
PROMPT Target: mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT
|
||||
|
||||
BEGIN
|
||||
CT_MRDS.DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE(
|
||||
pSchemaName => 'OU_C2D',
|
||||
pTableName => 'MPEC_CONTENT',
|
||||
pKeyColumnName => 'A_WORKFLOW_HISTORY_KEY', -- Adjust if different
|
||||
pBucketArea => 'DATA',
|
||||
pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT',
|
||||
pColumnList => NULL, -- Use all columns
|
||||
pMinDate => DATE '2020-01-01', -- Full historical range
|
||||
pMaxDate => SYSDATE, -- Up to current date
|
||||
pParallelDegree => 1, -- Sequential for safety
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT', -- Template for mapping
|
||||
pCredentialName => 'DEF_CRED_ARN'
|
||||
);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('✓ MPEC_CONTENT export completed successfully');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('✗ MPEC_CONTENT export failed: ' || SQLERRM);
|
||||
-- Log error but continue with other tables
|
||||
INSERT INTO CT_MRDS.A_PROCESS_LOG (PACKAGE_NAME, PROCEDURE_NAME, EVENT_TYPE, EVENT_MESSAGE)
|
||||
VALUES ('MARS-956', 'EXPORT_MPEC_CONTENT', 'ERROR', 'Export failed: ' || SQLERRM);
|
||||
COMMIT;
|
||||
RAISE;
|
||||
END;
|
||||
/
|
||||
|
||||
-- ===================================================================
|
||||
-- TABLE 3: OU_C2D.MPEC_CONTENT_CRITERION -> ODS/C2D/C2D_MPEC_CONTENT_CRITERION
|
||||
-- ===================================================================
|
||||
|
||||
PROMPT Exporting Table 3/3: OU_C2D.MPEC_CONTENT_CRITERION
|
||||
PROMPT Target: mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT_CRITERION
|
||||
|
||||
BEGIN
|
||||
CT_MRDS.DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE(
|
||||
pSchemaName => 'OU_C2D',
|
||||
pTableName => 'MPEC_CONTENT_CRITERION',
|
||||
pKeyColumnName => 'A_WORKFLOW_HISTORY_KEY', -- Adjust if different
|
||||
pBucketArea => 'DATA',
|
||||
pFolderName => 'ODS/C2D/C2D_MPEC_CONTENT_CRITERION',
|
||||
pColumnList => NULL, -- Use all columns
|
||||
pMinDate => DATE '2020-01-01', -- Full historical range
|
||||
pMaxDate => SYSDATE, -- Up to current date
|
||||
pParallelDegree => 1, -- Sequential for safety
|
||||
pTemplateTableName => 'CT_ET_TEMPLATES.C2D_MPEC_CONTENT_CRITERION', -- Template for mapping
|
||||
pCredentialName => 'DEF_CRED_ARN'
|
||||
);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('✓ MPEC_CONTENT_CRITERION export completed successfully');
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('✗ MPEC_CONTENT_CRITERION export failed: ' || SQLERRM);
|
||||
-- Log error
|
||||
INSERT INTO CT_MRDS.A_PROCESS_LOG (PACKAGE_NAME, PROCEDURE_NAME, EVENT_TYPE, EVENT_MESSAGE)
|
||||
VALUES ('MARS-956', 'EXPORT_MPEC_CONTENT_CRITERION', 'ERROR', 'Export failed: ' || SQLERRM);
|
||||
COMMIT;
|
||||
RAISE;
|
||||
END;
|
||||
/
|
||||
|
||||
-- ===================================================================
|
||||
-- Export Summary and Verification
|
||||
-- ===================================================================
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Export Summary - Checking Results
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Log completion
|
||||
INSERT INTO CT_MRDS.A_PROCESS_LOG (PACKAGE_NAME, PROCEDURE_NAME, EVENT_TYPE, EVENT_MESSAGE)
|
||||
VALUES ('MARS-956', 'EXPORT_C2D_MPEC_DATA', 'INFO', 'All C2D MPEC historical exports completed successfully');
|
||||
COMMIT;
|
||||
|
||||
-- Display recent export activity
|
||||
PROMPT Recent Export Activity (last 30 minutes):
|
||||
SELECT TO_CHAR(EVENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS EXPORT_TIME,
|
||||
PACKAGE_NAME,
|
||||
PROCEDURE_NAME,
|
||||
EVENT_TYPE,
|
||||
EVENT_MESSAGE
|
||||
FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE PACKAGE_NAME = 'MARS-956'
|
||||
OR PROCEDURE_NAME LIKE '%DATA_EXPORTER%'
|
||||
AND EVENT_TIMESTAMP >= SYSTIMESTAMP - INTERVAL '30' MINUTE
|
||||
ORDER BY EVENT_TIMESTAMP DESC
|
||||
FETCH FIRST 20 ROWS ONLY;
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 Export Completed Successfully!
|
||||
PROMPT =========================================================================
|
||||
PROMPT Next Steps:
|
||||
PROMPT 1. Verify CSV files created in DATA bucket
|
||||
PROMPT 2. Check file structure matches template tables
|
||||
PROMPT 3. Validate row counts match source tables
|
||||
PROMPT 4. Confirm data available for delta queries
|
||||
PROMPT =========================================================================
|
||||
66
MARS_Packages/REL02_POST/MARS-956/README.md
Normal file
66
MARS_Packages/REL02_POST/MARS-956/README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# MARS-956: Exporting Historical data for ODS: C2D MPEC (delta)
|
||||
|
||||
## Overview
|
||||
|
||||
**Purpose**: One-time export of historical C2D MPEC delta data from operational database (OU_C2D) to DATA bucket as CSV files.
|
||||
|
||||
**Approach**: Use FILE_MANAGER export functionality EXPORT_TABLE_DATA_BY_DATE for bulk data movement.
|
||||
|
||||
**Input**: Old tables in OU_C2D operational database
|
||||
**Output**: CSV files in DATA bucket
|
||||
**Mapping**: Structure must match new ODS template tables
|
||||
|
||||
## Tables to Export
|
||||
|
||||
| Source Table (OU_C2D) | Target Location (DATA) | Export Type | Time Dependency |
|
||||
|------------------------|-------------------------|-------------|-----------------|
|
||||
| `MPEC_ADMIN` | `mrds_data_dev/ODS/C2D/C2D_MPEC_ADMIN` | CSV to DATA | Sync with REL_02 |
|
||||
| `MPEC_CONTENT` | `mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT` | CSV to DATA | Sync with REL_02 |
|
||||
| `MPEC_CONTENT_CRITERION` | `mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT_CRITERION` | CSV to DATA | Sync with REL_02 |
|
||||
|
||||
## Export Strategy
|
||||
|
||||
- **Format**: CSV files in DATA bucket
|
||||
- **Reason**: Complete history of delta records needed for all queries
|
||||
- **Method**: `DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE` procedure
|
||||
- **Bucket Area**: `'DATA'`
|
||||
- **Folder Structure**: `'ODS/C2D/{TABLE_NAME}'`
|
||||
|
||||
## Installation Steps
|
||||
|
||||
1. Run master install script: `@install_mars956.sql`
|
||||
2. Verify exports completed successfully
|
||||
3. Confirm CSV files created in DATA bucket with expected structure
|
||||
|
||||
## Files Structure
|
||||
|
||||
```
|
||||
MARS-956/
|
||||
├── README.md # This file
|
||||
├── install_mars956.sql # Master installation script
|
||||
├── 01_MARS_956_export_c2d_mpec_data.sql # Export procedures execution
|
||||
├── track_package_versions.sql # Universal version tracking
|
||||
├── verify_packages_version.sql # Universal version verification
|
||||
└── rollback_mars956.sql # Rollback script (if needed)
|
||||
```
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- OU_C2D schema access for source tables
|
||||
- DATA_EXPORTER package v2.7.4+ deployed
|
||||
- DEF_CRED_ARN credentials configured
|
||||
- DATA bucket accessible
|
||||
|
||||
## Post-Installation Verification
|
||||
|
||||
1. Check export completion in A_PROCESS_LOG
|
||||
2. Verify CSV files created in DATA bucket
|
||||
3. Validate file structure matches template tables
|
||||
4. Confirm row counts match source tables
|
||||
|
||||
## Notes
|
||||
|
||||
- This is a **one-time** data migration
|
||||
- No package modifications required (uses existing DATA_EXPORTER)
|
||||
- Export timing critical - must sync with REL_02 deployment
|
||||
- Complete history required for delta queries
|
||||
128
MARS_Packages/REL02_POST/MARS-956/install_mars956.sql
Normal file
128
MARS_Packages/REL02_POST/MARS-956/install_mars956.sql
Normal file
@@ -0,0 +1,128 @@
|
||||
-- ===================================================================
|
||||
-- MARS-956 MASTER INSTALLATION SCRIPT
|
||||
-- ===================================================================
|
||||
-- Purpose: Export Historical C2D MPEC data from OU_C2D to DATA bucket
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2026-02-11
|
||||
--
|
||||
-- Requirements:
|
||||
-- - ADMIN user access for MARS installation
|
||||
-- - OU_C2D schema access for source tables
|
||||
-- - DATA_EXPORTER package v2.7.4+ deployed
|
||||
-- - DEF_CRED_ARN credentials configured
|
||||
-- - DATA bucket accessible
|
||||
-- ===================================================================
|
||||
|
||||
-- Dynamic spool file generation
|
||||
host mkdir log 2>nul
|
||||
define spoolfile = 'log\install_mars956_'
|
||||
define timestamp = ''
|
||||
|
||||
-- Get current timestamp for unique log filename
|
||||
column current_time new_value timestamp
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') AS current_time FROM dual;
|
||||
|
||||
-- Start logging
|
||||
spool &spoolfile.×tamp..log
|
||||
|
||||
-- Display environment information
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 INSTALLATION - Export Historical C2D MPEC Data
|
||||
PROMPT =========================================================================
|
||||
PROMPT Installation Start:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS INSTALL_START FROM DUAL;
|
||||
|
||||
PROMPT Current User:
|
||||
SELECT USER AS CURRENT_USER FROM DUAL;
|
||||
|
||||
PROMPT Database Info:
|
||||
SELECT INSTANCE_NAME, VERSION, STATUS FROM V$INSTANCE;
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT Installation Details:
|
||||
PROMPT - Purpose: One-time export of historical C2D MPEC delta data
|
||||
PROMPT - Source: OU_C2D schema tables (operational database)
|
||||
PROMPT - Target: DATA bucket as CSV files
|
||||
PROMPT - Tables: MPEC_ADMIN, MPEC_CONTENT, MPEC_CONTENT_CRITERION
|
||||
PROMPT - Method: DATA_EXPORTER.EXPORT_TABLE_DATA_BY_DATE
|
||||
PROMPT =========================================================================
|
||||
|
||||
SET SERVEROUTPUT ON SIZE 1000000
|
||||
SET LINESIZE 200
|
||||
SET PAGESIZE 1000
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 1: Verify Prerequisites
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Verify DATA_EXPORTER package is available
|
||||
PROMPT Checking DATA_EXPORTER package availability...
|
||||
SELECT 'DATA_EXPORTER v' || CT_MRDS.DATA_EXPORTER.PACKAGE_VERSION ||
|
||||
' (Build: ' || CT_MRDS.DATA_EXPORTER.PACKAGE_BUILD_DATE || ')' AS PACKAGE_INFO
|
||||
FROM DUAL;
|
||||
|
||||
-- Verify source tables exist in OU_C2D
|
||||
PROMPT Checking source tables in OU_C2D schema...
|
||||
SELECT table_name, num_rows
|
||||
FROM all_tables
|
||||
WHERE owner = 'OU_C2D'
|
||||
AND table_name IN ('MPEC_ADMIN', 'MPEC_CONTENT', 'MPEC_CONTENT_CRITERION')
|
||||
ORDER BY table_name;
|
||||
|
||||
-- Verify template tables exist in CT_ET_TEMPLATES
|
||||
PROMPT Checking template tables in CT_ET_TEMPLATES schema...
|
||||
SELECT table_name
|
||||
FROM all_tables
|
||||
WHERE owner = 'CT_ET_TEMPLATES'
|
||||
AND table_name IN ('C2D_MPEC_ADMIN', 'C2D_MPEC_CONTENT', 'C2D_MPEC_CONTENT_CRITERION')
|
||||
ORDER BY table_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 2: Execute Historical Data Export
|
||||
PROMPT =========================================================================
|
||||
@@01_MARS_956_export_c2d_mpec_data.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 3: Track Package Versions
|
||||
PROMPT =========================================================================
|
||||
@@track_package_versions.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 4: Verify Package Versions
|
||||
PROMPT =========================================================================
|
||||
@@verify_packages_version.sql
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 INSTALLATION SUMMARY
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Display final summary
|
||||
PROMPT Installation Completed:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS INSTALL_END FROM DUAL;
|
||||
|
||||
PROMPT Export Results Summary:
|
||||
SELECT COUNT(*) AS EXPORT_LOG_ENTRIES,
|
||||
MIN(EVENT_TIMESTAMP) AS FIRST_EXPORT,
|
||||
MAX(EVENT_TIMESTAMP) AS LAST_EXPORT
|
||||
FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE PACKAGE_NAME = 'MARS-956'
|
||||
AND EVENT_TIMESTAMP >= SYSDATE - 1; -- Last 24 hours
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT POST-INSTALLATION TASKS
|
||||
PROMPT =========================================================================
|
||||
PROMPT 1. Verify CSV files created in DATA bucket:
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_ADMIN/*.csv
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT/*.csv
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT_CRITERION/*.csv
|
||||
PROMPT
|
||||
PROMPT 2. Check file structure matches template tables
|
||||
PROMPT 3. Validate row counts match source tables
|
||||
PROMPT 4. Confirm data available for delta queries
|
||||
PROMPT 5. Sync deployment timing with REL_02 deployment
|
||||
PROMPT =========================================================================
|
||||
|
||||
spool off
|
||||
quit;
|
||||
85
MARS_Packages/REL02_POST/MARS-956/rollback_mars956.sql
Normal file
85
MARS_Packages/REL02_POST/MARS-956/rollback_mars956.sql
Normal file
@@ -0,0 +1,85 @@
|
||||
-- ===================================================================
|
||||
-- MARS-956 ROLLBACK SCRIPT
|
||||
-- ===================================================================
|
||||
-- Purpose: Rollback/cleanup for MARS-956 C2D MPEC historical data export
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2026-02-11
|
||||
--
|
||||
-- NOTE: This is primarily for cleanup of log entries and tracking data.
|
||||
-- The exported CSV files would need to be manually removed from
|
||||
-- the DATA bucket if rollback is required.
|
||||
-- ===================================================================
|
||||
|
||||
-- Start logging
|
||||
spool rollback_mars956.log
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 ROLLBACK - Cleanup Historical C2D MPEC Export
|
||||
PROMPT =========================================================================
|
||||
PROMPT Rollback Start:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS ROLLBACK_START FROM DUAL;
|
||||
|
||||
SET SERVEROUTPUT ON SIZE 1000000
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 1: Review Export Activity
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Show what was exported
|
||||
PROMPT Recent MARS-956 export activity:
|
||||
SELECT TO_CHAR(EVENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS EXPORT_TIME,
|
||||
PROCEDURE_NAME,
|
||||
EVENT_TYPE,
|
||||
EVENT_MESSAGE
|
||||
FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE PACKAGE_NAME = 'MARS-956'
|
||||
OR PROCEDURE_NAME LIKE '%MARS_956%'
|
||||
ORDER BY EVENT_TIMESTAMP DESC;
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 2: Cleanup Log Entries (Optional)
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Optionally remove MARS-956 log entries (uncomment if needed)
|
||||
/*
|
||||
DELETE FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE PACKAGE_NAME = 'MARS-956'
|
||||
OR PROCEDURE_NAME LIKE '%MARS_956%';
|
||||
|
||||
PROMPT Deleted log entries:
|
||||
SELECT SQL%ROWCOUNT AS DELETED_ROWS FROM DUAL;
|
||||
|
||||
COMMIT;
|
||||
*/
|
||||
|
||||
PROMPT Log cleanup skipped (uncomment DELETE statement if cleanup needed)
|
||||
|
||||
PROMPT
|
||||
PROMPT Step 3: Manual Steps Required
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT ⚠️ MANUAL CLEANUP REQUIRED:
|
||||
PROMPT
|
||||
PROMPT If complete rollback is needed, manually remove CSV files from DATA bucket:
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_ADMIN/*.csv
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT/*.csv
|
||||
PROMPT - mrds_data_dev/ODS/C2D/C2D_MPEC_CONTENT_CRITERION/*.csv
|
||||
PROMPT
|
||||
PROMPT Use OCI CLI or console to remove files:
|
||||
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "ODS/C2D/C2D_MPEC"
|
||||
PROMPT oci os object delete --bucket-name mrds_data_dev --name "path/to/file.csv"
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 ROLLBACK SUMMARY
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT Rollback Completed:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS ROLLBACK_END FROM DUAL;
|
||||
|
||||
PROMPT
|
||||
PROMPT Note: This rollback script primarily cleans up log entries.
|
||||
PROMPT Exported CSV files require manual removal from DATA bucket.
|
||||
|
||||
spool off
|
||||
quit;
|
||||
96
MARS_Packages/REL02_POST/MARS-956/track_package_versions.sql
Normal file
96
MARS_Packages/REL02_POST/MARS-956/track_package_versions.sql
Normal file
@@ -0,0 +1,96 @@
|
||||
-- ===================================================================
|
||||
-- Simple Package Version Tracking Script
|
||||
-- ===================================================================
|
||||
-- Purpose: Track specified Oracle package versions for MARS-956
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2026-02-11
|
||||
-- Version: 3.1.0 - List-Based Edition
|
||||
--
|
||||
-- USAGE:
|
||||
-- 1. Edit package list below (add/remove packages as needed)
|
||||
-- 2. Include in your install/rollback script: @@track_package_versions.sql
|
||||
-- ===================================================================
|
||||
|
||||
SET SERVEROUTPUT ON;
|
||||
|
||||
DECLARE
|
||||
TYPE t_package_rec IS RECORD (
|
||||
owner VARCHAR2(50),
|
||||
package_name VARCHAR2(50),
|
||||
version VARCHAR2(50)
|
||||
);
|
||||
TYPE t_packages IS TABLE OF t_package_rec;
|
||||
TYPE t_string_array IS TABLE OF VARCHAR2(100);
|
||||
|
||||
-- ===================================================================
|
||||
-- PACKAGE LIST - Edit this array to specify packages to track
|
||||
-- ===================================================================
|
||||
-- MARS-956: Historical C2D MPEC data export - using existing packages
|
||||
-- No new packages created, tracking existing DATA_EXPORTER usage
|
||||
-- ===================================================================
|
||||
vPackageList t_string_array := t_string_array(
|
||||
'CT_MRDS.DATA_EXPORTER'
|
||||
);
|
||||
-- ===================================================================
|
||||
|
||||
vPackages t_packages := t_packages();
|
||||
vVersion VARCHAR2(50);
|
||||
vCount NUMBER := 0;
|
||||
vOwner VARCHAR2(50);
|
||||
vPackageName VARCHAR2(50);
|
||||
vDotPos NUMBER;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.PUT_LINE('========================================');
|
||||
DBMS_OUTPUT.PUT_LINE('MARS-956: Package Version Tracking');
|
||||
DBMS_OUTPUT.PUT_LINE('========================================');
|
||||
|
||||
-- Process each package in the list
|
||||
FOR i IN 1..vPackageList.COUNT LOOP
|
||||
vDotPos := INSTR(vPackageList(i), '.');
|
||||
IF vDotPos > 0 THEN
|
||||
vOwner := SUBSTR(vPackageList(i), 1, vDotPos - 1);
|
||||
vPackageName := SUBSTR(vPackageList(i), vDotPos + 1);
|
||||
|
||||
-- Get package version
|
||||
BEGIN
|
||||
EXECUTE IMMEDIATE 'SELECT ' || vOwner || '.' || vPackageName || '.GET_VERSION() FROM DUAL' INTO vVersion;
|
||||
vPackages.EXTEND;
|
||||
vPackages(vPackages.COUNT).owner := vOwner;
|
||||
vPackages(vPackages.COUNT).package_name := vPackageName;
|
||||
vPackages(vPackages.COUNT).version := vVersion;
|
||||
|
||||
-- Track in ENV_MANAGER
|
||||
BEGIN
|
||||
CT_MRDS.ENV_MANAGER.TRACK_PACKAGE_VERSION(
|
||||
pPackageOwner => vOwner,
|
||||
pPackageName => vPackageName,
|
||||
pPackageVersion => vVersion,
|
||||
pPackageBuildDate => TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS'),
|
||||
pPackageAuthor => 'Grzegorz Michalski'
|
||||
);
|
||||
vCount := vCount + 1;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN NULL; -- Continue even if tracking fails
|
||||
END;
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN NULL; -- Skip packages that fail
|
||||
END;
|
||||
END IF;
|
||||
END LOOP;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('Summary:');
|
||||
DBMS_OUTPUT.PUT_LINE('--------');
|
||||
DBMS_OUTPUT.PUT_LINE('Packages tracked: ' || vCount || '/' || vPackageList.COUNT);
|
||||
|
||||
IF vPackages.COUNT > 0 THEN
|
||||
DBMS_OUTPUT.PUT_LINE('');
|
||||
DBMS_OUTPUT.PUT_LINE('Tracked Packages:');
|
||||
FOR i IN 1..vPackages.COUNT LOOP
|
||||
DBMS_OUTPUT.PUT_LINE(' ' || vPackages(i).owner || '.' || vPackages(i).package_name || ' v' || vPackages(i).version);
|
||||
END LOOP;
|
||||
END IF;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('========================================');
|
||||
END;
|
||||
/
|
||||
142
MARS_Packages/REL02_POST/MARS-956/validate_export.sql
Normal file
142
MARS_Packages/REL02_POST/MARS-956/validate_export.sql
Normal file
@@ -0,0 +1,142 @@
|
||||
-- ===================================================================
|
||||
-- MARS-956 POST-EXPORT VALIDATION SCRIPT
|
||||
-- ===================================================================
|
||||
-- Purpose: Validate C2D MPEC historical data export results
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2026-02-11
|
||||
--
|
||||
-- Run after MARS-956 installation to verify export success
|
||||
-- ===================================================================
|
||||
|
||||
SET LINESIZE 200
|
||||
SET PAGESIZE 1000
|
||||
SET SERVEROUTPUT ON SIZE 1000000
|
||||
|
||||
PROMPT =========================================================================
|
||||
PROMPT MARS-956 POST-EXPORT VALIDATION
|
||||
PROMPT =========================================================================
|
||||
PROMPT Validation Start:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS VALIDATION_START FROM DUAL;
|
||||
|
||||
PROMPT
|
||||
PROMPT 1. Export Process Log Review
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Check export completion status
|
||||
PROMPT Recent MARS-956 export activity:
|
||||
SELECT TO_CHAR(EVENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS EVENT_TIME,
|
||||
PROCEDURE_NAME,
|
||||
EVENT_TYPE,
|
||||
SUBSTR(EVENT_MESSAGE, 1, 80) AS MESSAGE_PREVIEW
|
||||
FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE PACKAGE_NAME = 'MARS-956'
|
||||
OR PROCEDURE_NAME LIKE '%MARS_956%'
|
||||
OR PROCEDURE_NAME LIKE '%DATA_EXPORTER%'
|
||||
ORDER BY EVENT_TIMESTAMP DESC
|
||||
FETCH FIRST 20 ROWS ONLY;
|
||||
|
||||
-- Check for any errors
|
||||
PROMPT Export errors (if any):
|
||||
SELECT TO_CHAR(EVENT_TIMESTAMP, 'YYYY-MM-DD HH24:MI:SS') AS ERROR_TIME,
|
||||
PROCEDURE_NAME,
|
||||
EVENT_MESSAGE
|
||||
FROM CT_MRDS.A_PROCESS_LOG
|
||||
WHERE (PACKAGE_NAME = 'MARS-956' OR PROCEDURE_NAME LIKE '%MARS_956%')
|
||||
AND EVENT_TYPE = 'ERROR'
|
||||
AND EVENT_TIMESTAMP >= SYSDATE - 1; -- Last 24 hours
|
||||
|
||||
PROMPT
|
||||
PROMPT 2. Source Table Row Counts
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Get source table counts for comparison
|
||||
PROMPT Source table row counts (OU_C2D):
|
||||
SELECT 'OU_C2D' AS SCHEMA_NAME,
|
||||
table_name,
|
||||
num_rows,
|
||||
TO_CHAR(last_analyzed, 'YYYY-MM-DD HH24:MI:SS') AS STATS_DATE
|
||||
FROM all_tables
|
||||
WHERE owner = 'OU_C2D'
|
||||
AND table_name IN ('MPEC_ADMIN', 'MPEC_CONTENT', 'MPEC_CONTENT_CRITERION')
|
||||
ORDER BY table_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT 3. Template Table Structure Verification
|
||||
PROMPT =========================================================================
|
||||
|
||||
-- Verify template tables exist and have proper structure
|
||||
PROMPT Template tables in CT_ET_TEMPLATES:
|
||||
SELECT table_name,
|
||||
num_rows,
|
||||
TO_CHAR(last_analyzed, 'YYYY-MM-DD HH24:MI:SS') AS STATS_DATE
|
||||
FROM all_tables
|
||||
WHERE owner = 'CT_ET_TEMPLATES'
|
||||
AND table_name IN ('C2D_MPEC_ADMIN', 'C2D_MPEC_CONTENT', 'C2D_MPEC_CONTENT_CRITERION')
|
||||
ORDER BY table_name;
|
||||
|
||||
PROMPT
|
||||
PROMPT Template table column counts:
|
||||
SELECT owner, table_name, COUNT(*) AS COLUMN_COUNT
|
||||
FROM all_tab_columns
|
||||
WHERE owner IN ('OU_C2D', 'CT_ET_TEMPLATES')
|
||||
AND ((owner = 'OU_C2D' AND table_name IN ('MPEC_ADMIN', 'MPEC_CONTENT', 'MPEC_CONTENT_CRITERION'))
|
||||
OR (owner = 'CT_ET_TEMPLATES' AND table_name IN ('C2D_MPEC_ADMIN', 'C2D_MPEC_CONTENT', 'C2D_MPEC_CONTENT_CRITERION')))
|
||||
GROUP BY owner, table_name
|
||||
ORDER BY table_name, owner;
|
||||
|
||||
PROMPT
|
||||
PROMPT 4. Export File Validation Commands
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT To validate exported CSV files, use these OCI CLI commands:
|
||||
PROMPT
|
||||
PROMPT # List exported files
|
||||
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "ODS/C2D/C2D_MPEC"
|
||||
PROMPT
|
||||
PROMPT # Check file sizes
|
||||
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "ODS/C2D/C2D_MPEC_ADMIN"
|
||||
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "ODS/C2D/C2D_MPEC_CONTENT"
|
||||
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "ODS/C2D/C2D_MPEC_CONTENT_CRITERION"
|
||||
PROMPT
|
||||
PROMPT # Download sample file for validation
|
||||
PROMPT oci os object get --bucket-name mrds_data_dev --name "ODS/C2D/C2D_MPEC_ADMIN/filename.csv" --file sample.csv
|
||||
|
||||
PROMPT
|
||||
PROMPT 5. Data Quality Checks (Manual)
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT Manual verification steps:
|
||||
PROMPT 1. Download sample CSV files from each folder
|
||||
PROMPT 2. Verify CSV header matches template table columns
|
||||
PROMPT 3. Check data formats (especially dates) match expectations
|
||||
PROMPT 4. Confirm row counts approximately match source tables
|
||||
PROMPT 5. Validate no empty files were created
|
||||
PROMPT 6. Test loading sample data into external tables
|
||||
|
||||
PROMPT
|
||||
PROMPT 6. Next Steps for ODS Integration
|
||||
PROMPT =========================================================================
|
||||
|
||||
PROMPT After validation success:
|
||||
PROMPT 1. Configure external tables pointing to CSV files
|
||||
PROMPT 2. Test external table queries
|
||||
PROMPT 3. Setup scheduled data refresh processes (if needed)
|
||||
PROMPT 4. Document file locations and access patterns
|
||||
PROMPT 5. Coordinate with REL_02 deployment timing
|
||||
|
||||
PROMPT
|
||||
PROMPT =========================================================================
|
||||
PROMPT VALIDATION COMPLETED
|
||||
PROMPT =========================================================================
|
||||
PROMPT Validation End:
|
||||
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS VALIDATION_END FROM DUAL;
|
||||
|
||||
PROMPT
|
||||
PROMPT Review the output above to confirm:
|
||||
PROMPT ✓ Export processes completed without errors
|
||||
PROMPT ✓ Source table row counts are reasonable
|
||||
PROMPT ✓ Template tables exist and have matching structure
|
||||
PROMPT ✓ Manual file validation steps are understood
|
||||
PROMPT
|
||||
PROMPT If any issues found, check export logs and re-run specific exports if needed.
|
||||
PROMPT =========================================================================
|
||||
@@ -0,0 +1,62 @@
|
||||
-- ===================================================================
|
||||
-- Universal Package Version Verification Script
|
||||
-- ===================================================================
|
||||
-- Purpose: Verify all tracked Oracle packages for code changes (MARS-956)
|
||||
-- Author: Grzegorz Michalski
|
||||
-- Date: 2026-02-11
|
||||
-- Version: 1.0.0
|
||||
--
|
||||
-- USAGE:
|
||||
-- Include at the end of install/rollback scripts: @@verify_packages_version.sql
|
||||
--
|
||||
-- OUTPUT:
|
||||
-- - List of all tracked packages with their current status
|
||||
-- - OK: Package has not changed since last tracking
|
||||
-- - WARNING: Package code changed without version update
|
||||
-- ===================================================================
|
||||
|
||||
SET LINESIZE 200
|
||||
SET PAGESIZE 1000
|
||||
SET FEEDBACK OFF
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT MARS-956: Package Version Verification
|
||||
PROMPT ========================================
|
||||
PROMPT
|
||||
|
||||
COLUMN PACKAGE_OWNER FORMAT A15
|
||||
COLUMN PACKAGE_NAME FORMAT A20
|
||||
COLUMN VERSION FORMAT A10
|
||||
COLUMN STATUS FORMAT A80
|
||||
|
||||
SELECT
|
||||
PACKAGE_OWNER,
|
||||
PACKAGE_NAME,
|
||||
PACKAGE_VERSION AS VERSION,
|
||||
CT_MRDS.ENV_MANAGER.CHECK_PACKAGE_CHANGES(PACKAGE_OWNER, PACKAGE_NAME) AS STATUS
|
||||
FROM (
|
||||
SELECT
|
||||
PACKAGE_OWNER,
|
||||
PACKAGE_NAME,
|
||||
PACKAGE_VERSION,
|
||||
ROW_NUMBER() OVER (PARTITION BY PACKAGE_OWNER, PACKAGE_NAME ORDER BY TRACKING_DATE DESC) AS RN
|
||||
FROM CT_MRDS.A_PACKAGE_VERSION_TRACKING
|
||||
)
|
||||
WHERE RN = 1
|
||||
ORDER BY PACKAGE_OWNER, PACKAGE_NAME;
|
||||
|
||||
PROMPT
|
||||
PROMPT ========================================
|
||||
PROMPT MARS-956: Verification Complete
|
||||
PROMPT ========================================
|
||||
PROMPT
|
||||
PROMPT Legend:
|
||||
PROMPT OK - Package has not changed since last tracking
|
||||
PROMPT WARNING - Package code changed without version update
|
||||
PROMPT
|
||||
PROMPT For detailed hash information, use:
|
||||
PROMPT SELECT ENV_MANAGER.GET_PACKAGE_HASH_INFO('OWNER', 'PACKAGE') FROM DUAL;
|
||||
PROMPT ========================================
|
||||
|
||||
SET FEEDBACK ON
|
||||
Reference in New Issue
Block a user