182 lines
7.1 KiB
SQL
182 lines
7.1 KiB
SQL
-- ===================================================================
|
|
-- 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. File Registration Validation
|
|
PROMPT =========================================================================
|
|
|
|
-- Check if exported files were registered in A_SOURCE_FILE_RECEIVED
|
|
PROMPT Registered export files (last 24 hours):
|
|
SELECT A_SOURCE_FILE_RECEIVED_KEY,
|
|
A_SOURCE_FILE_CONFIG_KEY,
|
|
SOURCE_FILE_NAME,
|
|
ROUND(BYTES/1024, 2) AS SIZE_KB,
|
|
PROCESSING_STATUS,
|
|
TO_CHAR(RECEPTION_DATE, 'YYYY-MM-DD HH24:MI:SS') AS REGISTERED_TIME
|
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
|
WHERE RECEPTION_DATE >= SYSDATE - 1 -- Last 24 hours
|
|
AND (SOURCE_FILE_NAME LIKE '%MPEC_%' OR A_SOURCE_FILE_CONFIG_KEY IN (
|
|
SELECT A_SOURCE_FILE_CONFIG_KEY
|
|
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
|
WHERE A_SOURCE_KEY = 'C2D' AND TABLE_ID LIKE '%MPEC%'
|
|
))
|
|
ORDER BY RECEPTION_DATE DESC;
|
|
|
|
-- Count registered files per config key
|
|
PROMPT File registration summary:
|
|
SELECT
|
|
CASE WHEN A_SOURCE_FILE_CONFIG_KEY = -1 THEN 'Default (no config)'
|
|
ELSE 'Config Key: ' || A_SOURCE_FILE_CONFIG_KEY
|
|
END AS CONFIG_INFO,
|
|
COUNT(*) AS REGISTERED_FILES
|
|
FROM CT_MRDS.A_SOURCE_FILE_RECEIVED
|
|
WHERE RECEPTION_DATE >= SYSDATE - 1 -- Last 24 hours
|
|
AND (SOURCE_FILE_NAME LIKE '%MPEC_%' OR A_SOURCE_FILE_CONFIG_KEY IN (
|
|
SELECT A_SOURCE_FILE_CONFIG_KEY
|
|
FROM CT_MRDS.A_SOURCE_FILE_CONFIG
|
|
WHERE A_SOURCE_KEY = 'C2D' AND TABLE_ID LIKE '%MPEC%'
|
|
))
|
|
GROUP BY A_SOURCE_FILE_CONFIG_KEY
|
|
ORDER BY A_SOURCE_FILE_CONFIG_KEY;
|
|
|
|
PROMPT
|
|
PROMPT 5. 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 "DATA/C2D/C2D_MPEC"
|
|
PROMPT
|
|
PROMPT # Check file sizes
|
|
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "DATA/C2D/C2D_MPEC_ADMIN"
|
|
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "DATA/C2D/C2D_MPEC_CONTENT"
|
|
PROMPT oci os object list --bucket-name mrds_data_dev --prefix "DATA/C2D/C2D_MPEC_CONTENT_CRITERION"
|
|
PROMPT
|
|
PROMPT # Download sample file for validation
|
|
PROMPT oci os object get --bucket-name mrds_data_dev --name "DATA/C2D/C2D_MPEC_ADMIN/filename.csv" --file sample.csv
|
|
|
|
PROMPT
|
|
PROMPT 6. 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 7. Verify file registration entries in A_SOURCE_FILE_RECEIVED
|
|
|
|
PROMPT
|
|
PROMPT 7. 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 ✓ Exported files registered in A_SOURCE_FILE_RECEIVED table
|
|
PROMPT ✓ Manual file validation steps are understood
|
|
PROMPT
|
|
PROMPT If any issues found, check export logs and re-run specific exports if needed.
|
|
PROMPT ========================================================================= |