ora2pg Migration Example: Oracle HR Schema to PostgreSQL

colorful stacked fabrics with intricate patterns

Oracle's HR schema is the closest thing the database world has to a universal reference.

Every Oracle DBA has seen it.

Every migration consultant uses it to explain how the process works.

What makes it genuinely useful as a case study is not its size — it is seven tables and 107 employees.

What makes it useful is that it contains, in minimal form, the exact patterns that make Oracle-to-PostgreSQL migrations non-trivial: sequences wired to triggers, stored procedures, type mismatches that compile cleanly and fail at runtime.

I ran the full migration using ora2pg 25.0 with Oracle 19c as the source and PostgreSQL 18 as the target.

This post covers the five things that required manual intervention — and why each one matters far more on a production schema than it does on a demo.

Continue reading “ora2pg Migration Example: Oracle HR Schema to PostgreSQL”

5 Oracle to PostgreSQL Migration Projects That Failed (And Why)

blue and multicolored abstract paitning

TL;DR: Most Oracle to PostgreSQL migrations that fail don’t fail because PostgreSQL wasn’t ready.
They fail because the project wasn’t ready.
The five patterns below repeat across organisations and sectors because teams make the same assumptions: that the tools handle more than they do, that PL/SQL volume is smaller than it is, and that a rollback plan can be improvised at 2am.

Continue reading “5 Oracle to PostgreSQL Migration Projects That Failed (And Why)”