Validating Data from Oracle

This page covers Oracle-specific setup for Data validation. For workflow field definitions, see Data validation configuration reference.

Prerequisites

Connectivity

Reuse [connections.source.oracle] Worker TOML from data migration:

[connections.source.oracle]
oracle_connection_mode = "basic"
username = "scott"
password = "your_password"
database = "ORCL"
host = "db.example.com"
port = "1521"

Set sourcePlatform: oracle in the validation workflow YAML.

For partitioning, indexColumnList, and other workflow settings shared across platforms, see Data validation configuration reference.

Example workflow excerpt:

sourcePlatform: oracle
targetDatabase: TARGET_DB
schemaMappings:
  HR: HR
validationConfiguration:
  schemaValidation: true
  metricsValidation: true
  rowValidation: false
tables:
  - fullyQualifiedName: HR.EMPLOYEES
    columnNamesToPartitionBy:
      - EMPLOYEE_ID
  - fullyQualifiedName: HR.DEPARTMENTS
    columnNamesToPartitionBy:
      - DEPARTMENT_ID
    indexColumnList:
      - DEPARTMENT_ID
    validationConfiguration:
      rowValidation: true

Data type mappings

Oracle typeSnowflake target typeSupported for validationNotes
NUMBER, FLOAT, integers, DECIMALNUMBER / FLOATYes
VARCHAR2, NVARCHAR2, VARCHARVARCHARYesOracle treats empty string as NULL
CHAR, NCHARVARCHARYesTrailing spaces ignored in comparison
CLOB, NCLOBVARCHARPartialMetrics comparison not supported
LONGVARCHARPartialMetrics and row comparison not supported
RAW, BLOBBINARYYesRow comparison covers the first 4000 bytes
DATE, TIMESTAMP typesTIMESTAMP_NTZ / TIMESTAMP_TZYes
TIMESTAMP WITH LOCAL TIME ZONETIMESTAMP_LTZPartialRow comparison not supported
INTERVAL typesINTERVALYesNative INTERVAL comparison by default; known limitation comparing interval sign. See INTERVAL data type handling.
XMLTYPEVARIANTPartialSchema-level comparison only
JSONVARIANTYesRequires Oracle 21c or later
BOOLEANBOOLEANYesRequires Oracle 23ai or later
VECTORVECTOR(element_type, n)YesRequires Oracle 23ai or later. Row-level validation compares element by element
SDO_GEOMETRYGEOGRAPHYYesRequires Oracle Spatial. Compared as WKT, truncated at 4000 characters in row-level validation

Platform-specific considerations

  • Starting validation: Ask the agent to generate a validation workflow with the depth you need (schema validation, metrics validation, and row-level validation, per table).

    Prompt:

    Run cloud data validation for my Oracle tables, with schema and metrics validation on all tables and row-level validation on EMPLOYEES
    
  • Performance hints: AIM DMV adds an automatic PARALLEL optimizer hint on large Oracle tables to speed up scans. Override with queryModifiers.selectModifier, or set selectModifier to "NONE" to disable. See Anti-locking and query modifiers.