Code
Migrate a database dialect
Schema, procedures and the semantics that quietly differ.
Fill it in
DDL and procedures.
Empty string versus null, sequences, dates.
Row counts and checksums, not just a successful load.
Your prompt
Migrate this schema and its procedures. The silent differences are the whole job. An empty string is not NULL in Postgres and is in Oracle, so `WHERE col IS NULL` changes meaning and no error is raised. NUMBER without precision, date arithmetic, sequence behaviour and implicit conversions all differ the same way: the migration succeeds and the results change. Translate sequences and triggers to identity columns where possible, and say where it is not. Verify with DATA: row counts per table, checksums on the numeric columns, and a sample compared field by field. A successful load proves the DDL parsed.
Use Migrate a database dialectOpens with everything above already filled in.
Why this works
An empty string is NULL in Oracle and is not in Postgres, so `IS NULL` changes meaning and nothing raises an error. That class of silent difference is the whole job, and this verifies with row counts, checksums and field comparison rather than a successful load.