This free online Oracle to PostgreSQL SQL converter translates your CREATE TABLE DDL scripts between dialects instantly — with no server upload, no account, and no rate limits. Paste your Oracle schema on the left and the converted PostgreSQL DDL appears on the right in real time. All conversion logic runs entirely in your browser, keeping your database schema 100% private and secure.
Code & Data Generator
How Oracle column types map to their PostgreSQL equivalents, with migration notes for each type.
| Oracle Type | PostgreSQL Equivalent | Notes |
|---|---|---|
| NUMBER(p,0) / INTEGER | INTEGER | Or BIGINT; use SERIAL for auto-increment |
| NUMBER(p,s) with scale > 0 | NUMERIC(p,s) | Exact arbitrary precision |
| BINARY_FLOAT | REAL | 32-bit IEEE float |
| BINARY_DOUBLE | DOUBLE PRECISION | 64-bit IEEE float |
| VARCHAR2(n) | VARCHAR(n) | PostgreSQL is Unicode by default |
| NVARCHAR2(n) | VARCHAR(n) | No prefix needed in PostgreSQL |
| CHAR(n) / NCHAR(n) | CHAR(n) | — |
| CLOB / NCLOB | TEXT | Unlimited text in PostgreSQL |
| DATE | TIMESTAMP | Oracle DATE has time component! Do NOT use DATE in Postgres if time matters |
| TIMESTAMP(n) | TIMESTAMP(n) | Same semantics |
| TIMESTAMP WITH TIME ZONE | TIMESTAMP WITH TIME ZONE | — |
| BLOB | BYTEA | — |
| RAW(n) | BYTEA | — |
| XMLTYPE | XML | PostgreSQL has native XML type |
| SYS_GUID() / RAW(16) | UUID | PostgreSQL UUID type with gen_random_uuid() |
| SEQUENCE + TRIGGER | SERIAL / BIGSERIAL | PostgreSQL auto-increment is simpler |
| DUAL (SELECT ... FROM DUAL) | Remove FROM clause | PostgreSQL SELECT 1 (no DUAL) |
| NVL(x, y) | COALESCE(x, y) | Standard SQL null coalescing |
Everything you need to know about converting Oracle to PostgreSQL.
Paste your Oracle CREATE TABLE statements into the SQL editor on the left. The PostgreSQL output appears instantly on the right panel in real-time as you type.
Yes — completely. The entire conversion runs inside your browser using JavaScript. Your SQL is never sent to any server, logged, or stored anywhere. This makes it safe to use with production or confidential database schemas.
PostgreSQL, MySQL, SQLite, SQL Server, Oracle, and MariaDB DDL syntax are all supported. The parser auto-detects the dialect from your CREATE TABLE syntax automatically.
Yes! Paste multiple CREATE TABLE statements separated by semicolons and all tables will be converted simultaneously, including cross-table foreign key relationships.
Yes. NULL, NOT NULL, DEFAULT values, PRIMARY KEY, UNIQUE, and FOREIGN KEY constraints are all parsed and reflected in the PostgreSQL output. Nullable columns are correctly typed as optional properties or nullable types.
Yes, SchemaForge is completely free with no usage limits, no account required, and no rate limits. The tool runs entirely in your browser and will always be free.