Oracle to MySQL Types Mapping |
[Oracle to MySQL Converter] [About Migration] |
Oracle and MySQL have compatible sets of data types. However, types mapping may be required during database migration based on range of accceptable values. When implementing or validating database migration from Oracle to MySQL, it is important to remember the correct type mapping:
Oracle | MySQL |
BFILE | VARCHAR(255) |
BINARY_FLOAT | FLOAT |
BINARY_DOUBLE | DOUBLE PRECISION |
BLOB | LONGBLOB |
CHAR(n), CHARACTER(n) | CHAR(n), CHARACTER(n) |
CLOB | LONGTEXT |
DATE | DATETIME |
DECIMAL(p,s), DEC(p,s) | DECIMAL(p,s), DEC(p,s) |
DOUBLE PRECISION | DOUBLE PRECISION |
FLOAT(p) | DOUBLE |
INTEGER, INT | INT |
INTERVAL YEAR(p) TO MONTH | VARCHAR(30) |
INTERVAL DAY(p) TO SECOND(s) | VARCHAR(30) |
LONG | LONGTEXT |
LONG RAW | LONGBLOB |
NCHAR(n), n < 256 | NCHAR(n) |
NCHAR(n), n > 255 | NVARCHAR(n) |
NCHAR VARYING(n) | NCHAR VARYING(n) |
NCLOB | NVARCHAR(max) |
NUMBER(p,0), NUMBER(p), 1 <= p < 3 | TINYINT |
NUMBER(p,0), NUMBER(p), 3 <= p < 5 | SMALLINT |
NUMBER(p,0), NUMBER(p), 5 <= p < 9 | INT |
NUMBER(p,0), NUMBER(p), 9 <= p < 19 | BIGINT |
NUMBER(p,0), NUMBER(p), 19 <= p <= 38 | DECIMAL(p) |
NUMBER(p,s), s > 0 | DECIMAL(p,s) |
NUMBER, NUMBER(*) | DOUBLE |
NUMERIC(p,s) | NUMERIC(p,s) |
NVARCHAR2(n) | NVARCHAR(n) |
RAW(n),n < 256 | BINARY(n) |
RAW(n), n > 255 | VARBINARY(n) |
REAL | DOUBLE |
ROWID | CHAR(10) |
SMALLINT | DECIMAL(38) |
TIMESTAMP(p) | DATETIME(p) |
TIMESTAMP(p) WITH TIME ZONE | DATETIME(p) |
UROWID(n) | VARCHAR(n) |
VARCHAR(n),VARCHAR2(n) | VARCHAR(n) |
XMLTYPE | LONGTEXT |