NUMBER |
NUMBER(p) of up to 18 digits becomes SMALLINT, INT, or BIGINT. NUMBER(p,s) becomes NUMERIC(p,s), and a bare NUMBER stays an unbounded NUMERIC. |
Numbers stay numbers, but SQLite keeps 19 digits of a whole number and 15 of a fraction. Every column that can hold more is named in the log. |
FLOAT, BINARY_DOUBLE, BINARY_FLOAT |
FLOAT and BINARY_DOUBLE become DOUBLE; BINARY_FLOAT becomes REAL. |
Both are stored as SQLite's 8-byte floating point, so values arrive unchanged. |
Character types, CLOB, LONG |
VARCHAR2, NVARCHAR2, and CHAR keep their length as VARCHAR, NVARCHAR, and CHAR; NCHAR becomes NVARCHAR. CLOB, NCLOB, and LONG become TEXT. |
SQLite does not enforce declared lengths. CHAR values keep Oracle's trailing spaces. |
DATE, TIMESTAMP, INTERVAL |
DATE becomes DATETIME and every TIMESTAMP becomes TIMESTAMP, stored as text with its fractional seconds. INTERVAL types become VARCHAR(64). |
A time-zone timestamp is written as its UTC instant; the original offset is not kept. Test how your SQLite driver reads date text. |
BLOB, RAW, LONG RAW |
BLOB, byte for byte. |
Large payloads make a large file. Filter rows if the copy only needs part of them. |
| Identity columns and defaults |
An identity key becomes an INTEGER primary key with its values kept. Literal defaults are kept, and SYSDATE becomes CURRENT_TIMESTAMP. |
Other function defaults, such as SYS_GUID(), are dropped. New SQLite inserts continue above the highest copied key. |