怎样将mysql数据库导入到oracle数据库中

发布网友

我来回答

2个回答

懂视网

推荐:《mysql视频教程》

将mysql数据库导入oracle:

第一种方法:使用数据迁移工具

第二种方法:

一、将表中数据导入文本文件保存,我是在win下的命令行模式做的Mysql>select * from my_mysql_table into outfile 'c: /my_tmp.txt';

二、写控制文件用记事本开文档写完后改扩展名为.ctl,以下是具体内容load datainfile 'c:/my_tmp.txt'into table my_ora_tablereplace fields terminated by x'09'(字段1,字段2,字段3,......字段N)字段1~N是你要导入的Mysql的表字段数据,不需要的字段可以不写。

三、用sqlldr导入文本c:>sqlldr ora_usr回车后输入控制文件的路径,密码,接下来加载控制文件自动导入。

导入完成后,会生成个.log文件,可以查看你导入是否成功,不成功按提示的错误查找原因。

注意的是:

导入文本前,应在oracle数据库中事先建好要写入数据的表,并且要和所要导入的数据字段一致,如果不知Mysql的表结构,可以在Mysql>show create table my_mysql_table;查看建表的SQL,将其转换成oracle中可执行的SQL.

热心网友

1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar。

加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。

2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。

3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。

4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。

5、

在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set 

Parameter按钮。如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User 

defined,并在下方填写charset=gbk, collation=gbk_general_ci。Migration of type 

Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data 

consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User 

defined,并在下方填写addAutoincrement=yes, charset=gbk, 

collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。

6、再到Manual 

Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如

Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All 

Objects,然后在Migrated 

Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply 

Changes按钮保存,按“Next”继续。

7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。

要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet 

are not 

allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句

在数据库中查询其值:

show VARIABLES like '%max_allowed_packet%';

修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加一行:

max_allowed_packet=16777216

重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com