From:       To:      

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