如何用Navicat将Oracle迁移至mysql?

1)下载Navicat Premium版本,Navicat for mysql只支持连接mysql数据库。如果需要支持oracle连接,还需要配置OCI,选择工具—选项—OCI,选择对应路径下文件:



配置完成后关闭Navicat再重新打开。


2)配置目的(mysql)数据库连接



输入mysql连接信息



3) 配置源(oracle)数据库连接




4)选择工具-数据传输,配置源数据库及目标数据库,并选择要传输的表



在高级选项中可选择只创建表,不同步记录。也可以同时创建表和同步记录。配置完成后点击开始后进行转换。

注意点:

1)在转换过程中报错:

这是由于将oracle的varchar2转成mysql数据库的varchar类型,长度不能大于255,如果oracle中varchar2的长度大于255,则会转成text/blob类型,在未指定text/blob键长的情况下如果将这个字段设置成主键或索引就会报错。

解决办法:将该字段从主键中移除或缩短字段定义长度


2)由于mysql的date类型只支持存储日期,不能存储时间,navicat在转换时,如果是oracle的date,会自动转成mysql的date,这样会导致mysql的精度不够而报错,所以要提前将oracle的date类型转换成timestamp类型。如果表的数量比较多,手工改太麻烦了,可以写存储过程,自动将oracle中所有表中的DATE类型转换成TIMESTAMP类型。


3)类型转换问题,工具将ORACLE数据库中integer类型自动转成decimal(65,30),如果不需要小数位,最好先在oracle将integer统一转成number(**)之后再转换到mysql数据库。目前工具默认的转换规则:




标签: 暂无标签
iidba

写了 218 篇文章,拥有财富 2860,被 235 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

成为第一个吐槽的人

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈