The Oracle Database vs PostgreSQL question is the most common migration we benchmark. Postgres has closed nearly every capability gap that mattered a decade ago — partitioning, logical replication, JSON, geospatial, even basic columnar processing — while remaining free at the licence layer. The real comparison is in support cost, migration effort, and the audit risk Oracle creates when you drop the renewal. Here is the buyer-side analysis.
PostgreSQL is released under the PostgreSQL Licence, a permissive open-source licence comparable to MIT or BSD. There is no per-core fee, no per-user fee, no revenue-based fee, and no audit risk attached to the open-source database itself.
The real enterprise costs are four things:
The net annual TCO comparison for a 200-core enterprise workload typically lands at 18 to 30 percent of the Oracle Database EE equivalent — even after fully loaded enterprise Postgres support contracts.
The capability gap that justified Oracle Database's premium for decades has narrowed dramatically. PostgreSQL 15 and 16 close most of the operational gap; well-funded extensions close the rest.
| Capability | Oracle Database EE | PostgreSQL 16 |
|---|---|---|
| Table partitioning | Partitioning option (separately licensed) | Native, declarative |
| HA replication | Active Data Guard (separately licensed) | Streaming + logical replication |
| JSON support | JSON datatype | JSONB (binary, indexed) |
| Geospatial | Spatial option (separately licensed) | PostGIS (open-source) |
| Time-series | Limited built-in | TimescaleDB extension |
| Columnar storage | Database In-Memory (separately licensed) | Citus / Hydra extensions |
| Active-active shared storage | RAC (separately licensed) | BDR (commercial) only |
| PL/SQL ecosystem depth | Mature, deep, 30 years | PL/pgSQL is closer to PL/SQL than most other ports; conversion tools available |
| Exadata-style optimisations | Yes, on Exadata hardware | Not equivalent |
The remaining genuine Oracle-only territory: shared-storage active-active (RAC), Exadata-specific optimisations, deep Spatial 3D and network data, and a small set of PL/SQL constructs that require manual rewrite. For most enterprise OLTP, reporting, data warehousing under 100 TB, and modern application back-ends, PostgreSQL is functionally complete.
Production Postgres without commercial support is a defensible choice for some workloads — but most enterprises pick one of four routes.
The buyer-side advice on Postgres support: pick the route that matches your operational model. If you have an on-premise or hybrid estate with strong internal Postgres skills, EDB or Crunchy. If you are cloud-native and want managed-service convenience, AWS RDS or Aurora. If you are heavily Azure or GCP, the native managed services are mature enough to commit to.
Scenario: 200-core Oracle Database EE workload with Partitioning, Advanced Compression, Diagnostics Pack, and one DR site (Active Data Guard). Migration target: managed PostgreSQL on AWS RDS, plus EDB support for self-managed cluster sites.
| Cost component | Oracle Database EE | PostgreSQL |
|---|---|---|
| Licence amortisation (5 years) | $4.28M (perpetual licence cost over 5 yrs) | $0 |
| Required options amortisation | $2.38M | $0 |
| Annual support / SA (5 years, 4% uplift) | $5.10M | $0 |
| Commercial Postgres support (5 yrs) | $0 | $1.20M (EDB on 6 servers × 5yrs) |
| Managed service uplift (Aurora portion) | $0 | $0.75M (40% of compute for managed RDS) |
| Migration project cost (Year 0) | $0 | $1.80M (one-off) |
| Operational DBA delta (5 yrs) | $0 baseline | -$0.40M (Postgres typically lower ops) |
| 5-year TCO | $11.76M | $3.35M |
The headline 71 percent saving is real, but the migration project is real cost and real risk. The break-even point for this profile is month 14 from cut-over. If your Oracle support is currently more than $1M per year, the math works. If it is below $400K per year and the codebase is heavily PL/SQL-dependent, it may not.
The Oracle to PostgreSQL migration always concentrates effort in three places: schema conversion, PL/SQL conversion, and the testing-reconciliation cycle.
Schema conversion is the easy part. Ora2pg (open-source) and AWS Schema Conversion Tool typically convert 75 to 92 percent of Oracle schemas automatically. The remaining manual work is around data types (NUMBER precision, DATE timezone handling), VARCHAR2 to TEXT/VARCHAR, identity columns, and Oracle-specific defaults.
PL/SQL conversion is where the work concentrates. PostgreSQL's PL/pgSQL is broadly compatible with PL/SQL, but several constructs require manual rewriting: packages (split into schemas plus functions), Oracle-specific built-ins (e.g. DBMS_OUTPUT, DBMS_LOB), autonomous transactions, and certain cursor handling patterns. For a 200,000-line PL/SQL codebase, plan 6 to 9 person-months. EDB Postgres Advanced Server reduces this work significantly by providing native Oracle-compatibility extensions.
Testing and reconciliation is the longest phase. Every report, every batch job, every application connection has to produce the same numbers from Postgres as from Oracle. Plan 30 to 50 percent of the project timeline for this phase.
Realistic timeline for a 200-core mid-sized enterprise: 12 to 24 months end-to-end. Realistic cost: $1.2M to $3.5M depending on PL/SQL complexity, application count, and SI rates.
The cloud managed-Postgres landscape has matured quickly. Three serious enterprise options:
For Google Cloud, Cloud SQL for PostgreSQL is mature; AlloyDB is Google's higher-performance Postgres-compatible engine and is covered in our Oracle vs Google AlloyDB comparison.
Cancelling Oracle Database EE support is one of the most reliable LMS triggers. We have not seen an Oracle Database support termination in the last three years that did not result in some form of LMS engagement letter inside six months.
The pattern is predictable. A "courtesy review" letter arrives 30 to 120 days after the non-renewal notice. The opening claim is typically a back-licence position covering perceived under-licensing across the entire Oracle estate — not just the products you dropped. Common attack vectors:
Defence is buyer-side, evidence-based, and starts before the non-renewal notice goes out. The Effective Licence Position, virtualisation configuration documentation, NUP audit, options usage history, and decommission record all need to be filed before the notice. With that pack, settlement outcomes typically land between 18 and 32 percent of Oracle's opening claim. Without it, average is 60 to 75 percent.
Buyer-side advice means saying no where it would harm the client. Four situations where Oracle Database is the right answer to keep — at least for this workload:
For everyone else — and that is most large Oracle estates — Postgres is the destination most worth modelling.
A Nordic logistics group ran 96 Processor licences of Oracle Database EE with Partitioning and Diagnostics Pack on VMware. Annual Oracle run-rate was $3.4M. The 14-month migration to Aurora PostgreSQL-Compatible on AWS covered 38 applications and roughly 180,000 lines of PL/SQL. Aurora annual run-rate post-migration: $640K. EDB-based hybrid support for transition period: a further $160K, dropping to $0 by Year 2. An LMS engagement letter arrived 84 days after the non-renewal notice; the buyer-side audit defence pack — filed before the notice — held. Settlement landed at 22 percent of the opening claim. Net annual saving from Year 2: $2.8M.
Yes — the open-source PostgreSQL licence is free for any commercial use, with no per-core, per-user, or revenue-based fees. The real enterprise cost is support: either commercial support from EnterpriseDB, Crunchy Data, or equivalent; or managed-service charges on AWS RDS, Aurora, Azure Flexible Server, or Google Cloud SQL. Most enterprises budget $80K to $240K per year for fully-supported Postgres at enterprise scale.
The narrowing gap: PostgreSQL 16 covers partitioning, logical replication, advanced JSON (JSONB), PostGIS for geospatial, full-text search, materialized views, parallel queries, columnar storage (via Citus or Hydra), and time-series (via TimescaleDB). What Oracle still leads on: shared-storage active-active RAC, Spatial 3D and network data, deep PL/SQL ecosystem, Exadata-specific optimisations. For most enterprise workloads, the gap is operational, not capability.
Schema conversion is largely automated using Ora2pg or AWS SCT — 60 to 85 percent of typical workloads convert without manual intervention. PL/SQL conversion is where the work concentrates. A 200,000-line PL/SQL codebase typically needs 6 to 9 person-months of conversion plus testing. Plan 12 to 24 months end-to-end for a mid-sized estate.
Plan the cut-over to land at or before the next Oracle support renewal. Send the formal non-renewal notice on time and prepare the audit defence pack before the notice goes out. Expect an LMS engagement letter within 30 to 180 days — a known Oracle response to support cancellation. Defend with evidence, do not just react.
EDB Postgres Advanced Server reduces PL/SQL migration effort with Oracle-compatibility extensions, but ties you to a commercial vendor. Vanilla Postgres (community-supported, optionally with Crunchy or 2ndQuadrant) preserves the open-source thesis but requires more manual PL/SQL conversion. For estates with heavy PL/SQL, EDB usually pays for itself in migration cost savings. For greenfield or thin-PL/SQL estates, vanilla is the right call.
For workloads where a credible Postgres migration is in flight, Oracle's account team may offer aggressive discounting — sometimes Oracle Database Standard Edition 2 at heavy discount, sometimes a cloud-credit-funded migration to Autonomous Database. Benchmark the offer against the 5-year Postgres TCO; the migration project pays back inside 18 months in most scenarios where the Postgres math worked in the first place.
Independence statement: Oracle Licensing Experts is an independent buyer-side advisory firm. Not affiliated with Oracle Corporation. We have no commercial relationship with EnterpriseDB, Crunchy Data, AWS, Azure, or Google Cloud. All numbers above reflect published list prices and benchmark engagement data.
Audit alerts, contract tactics, TCO benchmarks, and Postgres migration intel — every two weeks. Read by ITAM leads, CIOs, and legal teams.
No spam. Unsubscribe anytime. Not affiliated with Oracle Corporation.