SQL Database Converter
Advanced SQL conversion tool for migrating between Oracle and PostgreSQL
Lines: 0
Characters: 0
→
Lines: 0
Time: 0ms
Quick Reference
| Oracle | PostgreSQL |
|---|---|
| NUMBER | NUMERIC or INTEGER |
| VARCHAR2 | VARCHAR |
| CLOB | TEXT |
| BLOB | BYTEA |
| DATE | TIMESTAMP |
| TIMESTAMP | TIMESTAMP |
| RAW | BYTEA |
| LONG | TEXT |
| Oracle | PostgreSQL |
|---|---|
| SYSDATE | CURRENT_TIMESTAMP |
| NVL() | COALESCE() |
| DECODE() | CASE WHEN |
| ROWNUM | LIMIT/OFFSET |
| DUAL | (removed) |
| TO_CHAR() | TO_CHAR() |
| TO_DATE() | TO_TIMESTAMP() |
| SUBSTR() | SUBSTRING() |
| Oracle | PostgreSQL |
|---|---|
| OUTER JOIN (+) | LEFT/RIGHT JOIN |
| CONNECT BY | WITH RECURSIVE |
| START WITH | WITH RECURSIVE |
| SEQUENCE.NEXTVAL | nextval('sequence') |
| SEQUENCE.CURRVAL | currval('sequence') |
| := (assignment) | := (same) |
| || (concatenation) | || (same) |
Example 1: Simple Query
-- Oracle SELECT * FROM employees WHERE ROWNUM <= 10; -- PostgreSQL SELECT * FROM employees LIMIT 10;
Example 2: Date Function
-- Oracle SELECT SYSDATE FROM DUAL; -- PostgreSQL SELECT CURRENT_TIMESTAMP;
Example 3: Sequence
-- Oracle
INSERT INTO users (id, name) VALUES (user_seq.NEXTVAL, 'John');
-- PostgreSQL
INSERT INTO users (id, name) VALUES (nextval('user_seq'), 'John');