Not a bug report. I built a small tool and figured some people watching this repo might actually want it, so posting here instead of just leaving it in a corner of GitHub nobody finds.
It’s called ora2pg-gap-report. Basically it scans your Oracle PL/SQL before you even run ora2pg, and flags the stuff ora2pg is known to either mangle or silently drop: BULK COLLECT/FORALL, CONNECT BY with LEVEL, AUTONOMOUS_TRANSACTION, compound triggers, that kind of thing. 30-something detectors now. I didn’t want to just guess which Oracle features “feel risky,” so every single one of them got checked against a real ora2pg run and a real PostgreSQL load before it went in. Some things I was sure would be a problem (CREATE PACKAGE for example) turned out fine in practice and got dropped.
There’s also a –verify mode for after the migration. It rescans whatever ora2pg actually generated and tells you per construct whether it’s still there, gone, or just not something that can be checked at all (some things ora2pg deletes from its own output no matter what, so you can’t tell from the output alone if it was fixed or just erased). I didn’t want it spitting out a fake “87% migrated” number, so it doesn’t.
If you want to poke at it without installing anything, there’s a full worked example here, real ora2pg 25.0 output, checked against a real Postgres 16 too, not made up:
https://github.com/Lunch418/ora2pg-gap-report/tree/main/examples/end-to-end
Not trying to compete with SHOW_REPORT or anything, this is meant to sit next to ora2pg not replace it. Mostly just wanted to put it in front of people who’d actually run into these problems. If it’s useful to link somewhere, great, if not, no worries either way.
Not a bug report. I built a small tool and figured some people watching this repo might actually want it, so posting here instead of just leaving it in a corner of GitHub nobody finds.
It’s called ora2pg-gap-report. Basically it scans your Oracle PL/SQL before you even run ora2pg, and flags the stuff ora2pg is known to either mangle or silently drop: BULK COLLECT/FORALL, CONNECT BY with LEVEL, AUTONOMOUS_TRANSACTION, compound triggers, that kind of thing. 30-something detectors now. I didn’t want to just guess which Oracle features “feel risky,” so every single one of them got checked against a real ora2pg run and a real PostgreSQL load before it went in. Some things I was sure would be a problem (CREATE PACKAGE for example) turned out fine in practice and got dropped.
There’s also a –verify mode for after the migration. It rescans whatever ora2pg actually generated and tells you per construct whether it’s still there, gone, or just not something that can be checked at all (some things ora2pg deletes from its own output no matter what, so you can’t tell from the output alone if it was fixed or just erased). I didn’t want it spitting out a fake “87% migrated” number, so it doesn’t.
If you want to poke at it without installing anything, there’s a full worked example here, real ora2pg 25.0 output, checked against a real Postgres 16 too, not made up:
https://github.com/Lunch418/ora2pg-gap-report/tree/main/examples/end-to-end
Not trying to compete with SHOW_REPORT or anything, this is meant to sit next to ora2pg not replace it. Mostly just wanted to put it in front of people who’d actually run into these problems. If it’s useful to link somewhere, great, if not, no worries either way.