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数据库。目前工具默认的转换规则: 
|