首先注明一下:CSDN的博主:完美A型血就是我
导入数据方式
采用 Oracle(pl/sql)-> excel -> MySQL(Navicat for mysql) 的方式
具体步骤:
1. 通过pl/sql连接远程oracle数据库
具体步骤方法可百度,相关资料很多。简单描述为:
- 下载安装客户端;配置tns文件;
- 修改环境变量;
- 配置pl/sql(tools->connet);
- 连接pl/sql;
注意:
最好安装oracle的完整客户端,不要使用简易的客户端,因为简易的客户端自身不带有进行导出导入数据的功能。如果导出按钮为灰色,一般说明客户端有问题。
pl/sql好像只支持32位系统,因此安装oracle客户端时,也最好使用 32位的;
导出文件的格式有三种形式,dmp,sql和plsql自己带有的格式。这三种方式的导出文件包括sql,都不能直接导入mysql。
2. 将数据导入到excel
Oracle和mysql的语法不兼容,导出的数据文件不能直接导入mysql。对于数据量较小。少于10w条数据量的表,现在有一个较为笨拙的方法。即将数据导入到excel,再从excel导入mysql
Pl/sql本身可以将数据导入到excel(无论是视图还是表格。都可直接导入),使用查看表数据,然后在数据显示界面的空白处点击右键,将数据导入excel保存为.xls格式即可。
3. 导入mysql
这里需要使用一款mysql的官方推荐软件,Navivat for mysql,这款软件可以简易的连接服务器数据库,并将多种格式的文件导入数据库,这其中就包含.xls的excel文件。
注意:
导出的数据存在以下几点问题,首先没有id字段,需要手动命名为id;
导出的数据表记得要自己修改名称。默认名称中含有空格,也可以导入,但是导入后无法操作,mysql不认可空格;
所有字段的默认数据形式全部为varchar(255),需要根据原来的oracle数据表形式进行参照手动修改。
缺陷
这个方法笨拙且试用范围窄,很明显不是正确的方法,但是也算是一个将数据进行迁移的办法,在还没有找到更好的将数据从远程oracle同步到本地mysql服务器的方法之前,可将旧一下,先用着。:)
缺点如下:
- 步骤较多,麻烦;
- 试用范围小,只适合10w行以下,理论是都可以适应,但是数据量过大比如到达百万级。从pl/sql到excel的导入过程将会十分漫长。
- 不能实时同步。这是现在最为致命的问题。数据必须人工的进行定时的导出导入,不能与一卡通的直连服务器进行实时的更新,毫无疑问很不合理。
求助大神!
如果哪位大神有将远程oracle数据库中的数据导入mysql数据库中的比较简单或者说比较正统的方法的话,请麻烦务必要告诉我,在此感激不尽。