NUMBER(p,s) |
DECIMAL(p,s), so money and other exact values stay exact. |
MySQL allows at most 30 decimal places; a wider scale is cut to 30. |
NUMBER(p) |
The smallest integer type that holds the precision, from TINYINT to BIGINT. Above 18 digits, DECIMAL. |
None for the values; check application code that expects a particular integer type. |
NUMBER without precision |
DECIMAL(65,30), which keeps both whole numbers and fractions. |
Narrow the column in the review if you know what it holds. |
FLOAT, BINARY_DOUBLE, BINARY_FLOAT |
DOUBLE, or FLOAT for BINARY_FLOAT. |
These are binary floating point on both sides; values are approximate by design. |
DATE |
DATETIME, because an Oracle DATE also holds the time of day. |
Change it to DATE only if the times are always midnight. |
TIMESTAMP WITH TIME ZONE |
DATETIME. |
MySQL DATETIME has no time zone, so the offset is not kept. |
VARCHAR2, NVARCHAR2, CLOB |
VARCHAR up to 4,000 characters; CLOB and NCLOB become LONGTEXT. |
Non-Latin text arrives as itself. Create the MySQL database with utf8mb4. |
BLOB, RAW, LONG RAW |
LONGBLOB; a short RAW becomes TINYBLOB or BLOB. |
None. |
| Upper-case names |
Table and column names arrive as Oracle stores them, in upper case. |
Pick lower case or snake_case in the name rules if your MySQL code expects it. |