PostgreSQL
Oracle

PostgreSQL to Oracle Converter

Selected tables into an Oracle database, with editable mappings for a one-time load or a scheduled synchronization job.

Version
5.8.0
Release Date
Nov. 8, 2026
Size
72.9 MB
Platform
Windows 10 or later

Rather not run it yourself?

Let us do the migration →

Copy PostgreSQL tables into an Oracle database. DBConvert proposes an Oracle type for every column, creates the selected tables, indexes, and foreign keys, and transfers rows through a live connection to each server.

  • Reads PostgreSQL, Amazon RDS or Aurora, Azure Database for PostgreSQL, Google Cloud SQL, or Supabase.
  • Writes to Oracle Database 11.2 and later, including XE. The Oracle client ships with the application, so there is no separate Oracle Client to install.
  • Runs on Windows as a desktop application.
  • The same download converts Oracle back into PostgreSQL.

Prepare a repeatable Oracle load

Connections, tables, and mappings remain available on separate screens as you prepare the job.

Limit the source data

Select individual tables and apply per-table row filters for a subset load rather than copying the entire database.

Adjust the target schema

Edit column names and types before loading, and choose the name case Oracle should use: PostgreSQL's lower-case names arrive in upper case by default.

Save the job

Keep the connections, selected tables, mappings, and options together, and run the job again from the application or with --run-job.

Convert once, or keep Oracle in step with PostgreSQL

Conversion and synchronization are modes of one application.

One-time conversion

Create the Oracle schema and load its rows. Validate the result and run the application's queries before switching the write target.

Scheduled synchronization

Keep PostgreSQL operational while Oracle is prepared. A saved job carries inserts, updates, and deletes on a schedule, with explicit direction, synchronization keys, and conflict handling.

When Oracle is the right target

An application that requires Oracle

Bring PostgreSQL data into a packaged or in-house system whose vendor supports only Oracle, and adapt the incoming columns to its schema with the mapping controls.

Consolidation into an Oracle estate

Feed a PostgreSQL service's tables into the Oracle databases that reporting and operations already run on, once or on a schedule.

How PostgreSQL types map to Oracle

Oracle has no boolean, JSON, array, or UUID column in the classic type set, so several PostgreSQL types land as numbers or text. Review the proposed declarations against your data.

Scroll sideways to see all columns.

In PostgreSQL DBConvert default in Oracle What needs attention
Integers, numeric, floating point smallint, integer, and bigint become NUMBER(5), NUMBER(10), and NUMBER(19). numeric(p,s) becomes NUMBER(p,s); real and double precision become BINARY_FLOAT and BINARY_DOUBLE. Every digit is kept, including the full bigint range.
serial, identity, defaults On Oracle 12c and later, an identity column, GENERATED BY DEFAULT, keeping the copied values; on 11g the key stays a plain NUMBER. now() becomes SYSTIMESTAMP; constant defaults are kept. New rows get keys above the copied ones. Function defaults such as gen_random_uuid() are dropped rather than written as text; set them in Oracle if needed.
varchar, char, text varchar(n) becomes VARCHAR2(n CHAR), unbounded varchar VARCHAR2(4000 CHAR), char(n) CHAR(n CHAR), and text CLOB. Oracle stores an empty string as NULL. An empty string in a NOT NULL column is written as a single NUL character so the row still loads; check code that tests for ''.
boolean NUMBER(1), with true as 1, including a DEFAULT true. The application reads 1 and 0 instead of a boolean.
date, timestamp, timestamptz, time DATE, TIMESTAMP(6), and TIMESTAMP(6) WITH TIME ZONE. A time becomes a DATE holding the time of day on 1 January of year 1. Oracle has no time-only type. Read the time part of that DATE in queries.
json, jsonb, arrays, uuid, interval JSON and arrays become CLOB holding their text. A uuid becomes VARCHAR2(36 CHAR) and an interval VARCHAR2(100 CHAR). The values arrive as text. Queries that used PostgreSQL JSON or array operators need rewriting.
bytea BLOB. Binary values arrive byte for byte.

PL/pgSQL and views are not converted to PL/SQL

DBConvert moves tables, their columns, indexes, and foreign keys. Views, functions, procedures, and triggers need a separate rewrite for Oracle, along with application queries that depend on PostgreSQL-specific SQL.

Supported versions and services

PostgreSQL

  • PostgreSQL 8.x through 17.x
  • Amazon RDS / Aurora for PostgreSQL, Azure Database for PostgreSQL, Google Cloud SQL, Supabase
  • PostgreSQL schemas (public, custom schemas)

Oracle

  • Oracle Database 11.2 and later
  • Oracle client included in the installer

How to migrate PostgreSQL to Oracle

1

Setup: connect PostgreSQL and Oracle

Pick Convert or Sync, then choose the source and destination connections side by side on one screen. A connection is saved once and reused by every job.

Sync keeps an existing Oracle database up to date with PostgreSQL: each run carries only the inserts, updates and deletes since the last one.

PostgreSQL source

Allow remote access from the DBConvert machine. For local PostgreSQL, review the PostgreSQL connection guide; managed sources need firewall or authorized-network rules.

Oracle target

Enter the host, port, and service name, such as XEPDB1 or ORCL; by default the tables are created in the schema of the user you connect as. The Oracle client ships with DBConvert. See Oracle connection settings.

2

Tables & mapping: see every Oracle type before a row moves

Pick the tables, then open one: each PostgreSQL column shows the Oracle type it becomes. Change a type or a name in place; the line at the bottom names anything that would fail.

Verify the copy

With Verify after the run on, the destination is checked when the copy ends: schema, totals and rows. The window shows which tables, rows and columns differ.

How Verify works

Every option, in the guide

Naming rules, table options, row filters, scheduling and the command line work the same for every database pair, so they live in one place.

Move PostgreSQL data into Oracle

Download the current build and run the first job against your own database.

Windows Windows 10 or later · 72.9 MB