본문 바로가기
AWS/DMS (Database Migration Service)

Oracle VS Mysql 데이터 타입 비교

by DBTechBiz 2022. 8. 29.

DMS 를 이용하여 Oracle to MySQL 마이그레이션 시, 아래의 데이터 타입을 고려하여 테이블을 정의하거나 Task 작업 설정에서 자동으로 테이블을 생성하여 마이그레이션 하도록 할 수 있다. 저자는 정확한 테이블 설계를 통한 마이그레이션을 선호하는 편이라 아래의 데이터 타입을 참고하여 MySQL 테이블을 정의하고 Data Only 진행 방식으로 마이그레이션을 진행하였다.

Oracle VS Mysql Data Type

Oracle Number 타입으로만 선언한 경우 소수점이 포함이 될 수 있으므로 MySQL 에서는 정수형(Numeric) 이 아닌 이상 Double 타입으로 생성하여야 한다.

Oracle MySQL
BFILE VARCHAR(255)
CHAR(n), CHARACTER(n), n < 256 CHAR(n), CHARACTER(n)
CHAR(n), CHARACTER(n), n > 255 VARCHAR(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

 

반응형

댓글