开发者社区> 问答> 正文

数据传输服务DTS数据类型映射关系

已解决

展开
收起
游客qmmjzpf5bsyow 2018-04-01 07:07:25 939 0
1 条回答
写回答
取消 提交回答
  • 采纳回答

    详细解答可以参考官方帮助文档

    由于 Oracle 和 MySQL 的数据类型并不是一一对应的,所以 DTS 在进行结构迁移时,会根据两种数据库类型的数据类型定义,进行类型映射,下面是数据类型映射关系。

    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 local time zone datetime[(fractional_seconds_precision)] 支持
    timestamp[(fractional_seconds_precision)]with local time zone datetime[(fractional_seconds_precision)] 支持
    clob longtext 支持
    nclob longtext 支持
    blob longblob 支持
    raw varbinary(2000) 支持
    long raw longblob 支持
    bfile 不支持
    interval year(year_precision) to mongth 不支持
    interval day(day_precision) to second[(fractional_seconds_precision)] 不支持
    • 对于 char 类型,当 char(n) 的定义长度 n 超过 255 时,DTS 会自动将类型转换为 varchar(n)。
    • 由于 MySQL 本身不支持类似 Oracle 中的 bfile、interval year to month、interval day to second 这三种数据类型,所以 DTS 在进行结构迁移时,无法在 MySQL 中找到合适的数据类型进行映射,因此这三种类型不会进行转化。迁移时如果表中含有这三种类型,会导致结构迁移失败,用户可以在指定迁移对象的时候,对需要迁移的对象中这三种类型的列进行排除。
    • 由于 MySQL 的 timestamp 类型不包含时区,而 Oracle 的 timestamp with time zone 和 timestamp with local time zone 两种类型默认带有时区信息,所以 DTS 在迁移这两种类型的数据时,会将其转换成 UTC 时区后存入目标 RDS for MySQL 实例。
    2018-04-04 22:45:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTS助力企业快速复制阿里巴巴异地多活架构 立即下载
蚂蚁聚宝虫洞项目技术方案介绍 ——云与端之间数据传输的桥梁 立即下载
DTS控制台一本通 立即下载