由于异构数据库之间支持的数据类型不一样,数据类型无法一一对应,所以DTS在进行结构迁移时,会根据目标库支持的数据类型进行映射。本文为您列出详细数据类型映射关系,便于您查阅和评估数据迁移对业务的影响。

相关数据迁移的配置案例,请参见DTS数据迁移方案概览

从自建Oracle迁移至自建MySQL/RDS for MySQL/POLARDB for MySQL

Oracle数据类型 MySQL数据类型 DTS是否支持
varchar2(n [char/byte]) varchar(n) 支持
nvarchar2[(n)] national varchar[(n)] 支持
char[(n [byte/char])] char[(n)] 支持
nchar[(n)] national char[(n)] 支持
number[(p[,s])] decimal[(p[,s])] 支持
float(p)] double 支持
long longtext 支持
date datetime 支持
binary_float decimal(65,8) 支持
binary_double double 支持
timestamp[(fractional_seconds_precision)] datetime[(fractional_seconds_precision)] 支持
timestamp[(fractional_seconds_precision)]with localtimezone datetime[(fractional_seconds_precision)] 支持
timestamp[(fractional_seconds_precision)]with localtimezone datetime[(fractional_seconds_precision)] 支持
clob longtext 支持
nclob longtext 支持
blob longblob 支持
raw varbinary(2000) 支持
long raw longblob 支持
bfile - 不支持
interval year(year_precision) to month - 不支持
interval day(day_precision)to second[(fractional_seconds_precision)] - 不支持
说明
  • 对于char类型,当长度定义超过255时,DTS会将类型转换为varchar(n)。
  • 由于MySQL本身不支持类似Oracle中的bfile、interval year to month和interval day tosecond数据类型,DTS在进行结构迁移时,无法在MySQL中找到合适的数据类型进行映射,因此这三种类型不会进行转化。

    迁移时如果表中含有这三种类型,会导致结构迁移失败,在选择迁移对象时,对需要迁移的对象中这三种类型的列进行排除。

  • 由于MySQL的timestamp类型不包含时区,而Oracle的timestamp with time zone和timestamp with local time zone默认带有时区信息,DTS在迁移这两种类型的数据时,会将其转换成UTC时区后存入目标实例。

从自建Oracle迁移至DRDS

Oracle数据类型 DRDS数据类型 DTS是否支持
varchar2(n [char/byte]) varchar(n) 支持
nvarchar2[(n)] national varchar[(n)] 支持
char[(n [byte/char])] char[(n)] 支持
nchar[(n)] national char[(n)] 支持
number[(p[,s])] decimal[(p[,s])] 支持
float(p)] double 支持
long longtext 支持
date datetime 支持
binary_float decimal(65,8) 支持
binary_double double 支持
timestamp[(fractional_seconds_precision)] datetime[(fractional_seconds_precision)] 支持
timestamp[(fractional_seconds_precision)]with localtimezone datetime[(fractional_seconds_precision)] 支持
timestamp[(fractional_seconds_precision)]with localtimezone datetime[(fractional_seconds_precision)] 支持
clob longtext 支持
nclob longtext 支持
blob longblob 支持
raw varbinary(2000) 支持
long raw longblob 支持
bfile - 不支持
interval year(year_precision) to month - 不支持
interval day(day_precision)to second[(fractional_seconds_precision)] - 不支持
说明
  • 对于char类型,如果长度定义超过255,需要在DRDS中对应定义为varchar(n)。
  • 由于DRDS实例的timestamp类型不包含时区,而Oracle的timestamp with time zone和timestamp with local time zone默认带有时区信息,DTS在迁移这两种类型的数据时,会将其转换成UTC时区后存入目标DRDS实例。

从自建Oracle迁移至RDS for PPAS

Oracle数据类型 PPAS数据类型 DTS是否支持
varchar2(n [char/byte]) varchar2[(n)] 支持
nvarchar2[(n)] nvarchar2[(n)] 支持
char[(n [byte/char])] char[(n)] 支持
nchar[(n)] nchar[(n)] 支持
number[(p[,s])] number[(p[,s])] 支持
float(p)] double precision 支持
long long 支持
date date 支持
binary_float real 支持
binary_double double precision 支持
timestamp[(fractional_seconds_precision)] timestamp[(fractional_seconds_precision)] 支持
timestamp[(fractional_seconds_precision)]with time zone timestamp[(fractional_seconds_precision)]with time zone 支持
timestamp[(fractional_seconds_precision)]with local time zone timestamp[(fractional_seconds_precision)]with time zone 支持
clob clob 支持
nclob nclob 支持
blob blob 支持
raw raw(size) 支持
long raw long raw 支持
bfile - 不支持
interval year(year_precision) to month interval year to month 不支持
interval day(day_precision) to second[(fractional_seconds_precision)] interval day to second[(fractional_seconds_precision)] 不支持
说明 由于RDS for PPAS不支持timestamp[(fractional_seconds_precision)]with local time zone,DTS在迁移这种类型的数据时,会将其转换成UTC时区后存入目标RDS for PPAS的timestamp[(fractional_seconds_precision)]with time zone中。