# Oracle-to-Snowflake migration validation fixtures

Version: 0.1.0 (test design)

Reviewed: 20 October 2026

This release supports Ariftly's article, **Oracle to Snowflake migration validation: a six-gate acceptance framework**. It defines a small synthetic test suite for making source-to-target acceptance rules explicit.

## Status and scope

These fixtures are specifications, not observed Oracle or Snowflake results. They have not been executed as a cross-platform benchmark. No value in this release represents conversion accuracy, production readiness, runtime, cost, productivity, customer outcomes or autonomous performance.

The suite covers:

1. NULL and zero-length string treatment.
2. Oracle `DATE` values that contain time fields.
3. Multiple source rows matching one `MERGE` target.
4. Decimal precision and scale boundaries.
5. Aggregate checks that can hide keyed differences.
6. Declared source-to-target value mappings.
7. Session-sensitive temporal representation.
8. Missing and duplicate identities.

## Files

- `fixtures.csv` — candidate inputs and expected acceptance policies.
- `scenario-matrix.csv` — risk, fixture and intended assertion for each scenario.
- `evidence-manifest-template.csv` — fields for connecting requirements, artifacts, executions, comparisons and approvals.
- `sources.md` — primary technical documentation and scope notes.

## Reproducible protocol

1. Freeze the applicable Oracle and Snowflake versions, roles, time zone and session settings.
2. Construct explicit synthetic source tables and save DDL and insert statements.
3. Record expected source results and the source behavior contract.
4. Retain the exact original and converted SQL.
5. Execute against logically equivalent fixtures and capture run identifiers.
6. Compare values using declared, type-aware normalization rules.
7. Compare using approved unique keys, or a multiset of canonical tuples when keys are absent.
8. Ignore result order only when ordering is not part of the source contract.
9. Record each difference, approved transformation and exception disposition.
10. Publish observed outputs only after technical review.

## Canonical comparison rules

- Treat NULL and empty string as distinct target values unless a declared rule permits normalization.
- Preserve typed temporal meaning; do not rely on display-string equality.
- Prefer exact decimal comparison and declare any rounding, scale or tolerance.
- Validate key uniqueness before keyed comparison.
- Preserve duplicate multiplicity.
- Enforce ordering only when the contract requires it.
- Declare accepted transformations before reviewing results.

## License and attribution

The original fixture design and six-gate framework may be reused under the Creative Commons Attribution 4.0 International license with attribution to Ariftly and a link to the canonical article. Oracle and Snowflake product names and documentation remain the property of their respective owners.
