怎么把mysql数据库里面的表及数据 复制到oracle

怎么把mysql数据库里面的表及数据 复制到oracle,第1张

1、可以用PB、PLSQL Developer等软件,把表的数据倒成SQL文件,在MySql中执行!

2、也可以尝试写数据迁移程序,大概步骤是这样:

1)、根据双方数据库的数据字典,罗列出需要的字段

2)、编写相应的迁移程序,主要注意的地方就是Oracle的数据类型要做相应的转换,转移成DB2里有的,删除倒出时一些无用的数据,使导入的数据具有意义!

3)、抽取数据做验证!

3、如果数据量不大的话,完成可以用把表的数据倒成SQL文件再执行!

用sqlldr从mysql导出一个表的数据到oracle中:

*** 作步骤:

1、进入mysql

mysql>select UUID, CYC_CODE, b03_05, b03_06, b03_07, b03_08, b03_09, b03_10, b03_11, b03_12, Cate_Item_Code, product_name, product_unit

from jb603_jb603_sub3 into outfile 'd:/tmp/603sub.txt'

Query OK, 79537 rows affected (0.48 sec)

mysql>show create table jb603_jb603_sub3

| jb603_jb603_sub3 | CREATE TABLE `jb603_jb603_sub3` (

`UUID` varchar(32) NOT NULL default '',

`CYC_CODE` char(2) NOT NULL default '',

`b03_05` decimal(11,2) default '0.00',

`b03_06` decimal(11,2) default '0.00',

`b03_07` decimal(11,2) default '0.00',

`b03_08` decimal(11,2) default '0.00',

`b03_09` decimal(9,0) default '0',

`b03_10` decimal(11,2) default '0.00',

`b03_11` decimal(11,2) default '0.00',

`b03_12` decimal(11,2) default '0.00',

`Cate_Item_Code` varchar(7) NOT NULL default '',

`product_name` varchar(60) default '',

`product_unit` varchar(20) default '',

PRIMARY KEY (`UUID`,`CYC_CODE`,`Cate_Item_Code`)

) TYPE=InnoDB |

2、将语句整理成oracle支持的格式:

CREATE TABLE jb603_jb603_sub3 (

UUID varchar(32) NOT NULL ,

CYC_CODE char(2) NOT NULL ,

b03_05 number(11,2) ,

b03_06 number(11,2) ,

b03_07 number(11,2) ,

b03_08 number(11,2) ,

b03_09 number(9,0) ,

b03_10 number(11,2) ,

b03_11 number(11,2) ,

b03_12 number(11,2) ,

Cate_Item_Code varchar(7) NOT NULL ,

product_name varchar(60) ,

product_unit varchar(20) ,

PRIMARY KEY (UUID,CYC_CODE,Cate_Item_Code))

3、编写sqlldr控制文件t.ctl

load data

infile 'd:/tmp/603sub.txt'

into table jb603_jb603_sub3

replace

fields terminated by x'09'

(UUID, CYC_CODE, b03_05, b03_06, b03_07, b03_08, b03_09, b03_10, b03_11, b03_12, Cate_Item_Code, product_name, product_unit)

3运行sqlplus /nolog

SQL>conn lt/lt5@ibmlt

建立jb603_jb603_sub3表

SQL> CREATE TABLE jb603_jb603_sub3 (

2UUID varchar(32) NOT NULL ,

3CYC_CODE char(2) NOT NULL ,

4b03_05 number(11,2) ,

5b03_06 number(11,2) ,

6b03_07 number(11,2) ,

7b03_08 number(11,2) ,

8b03_09 number(9,0) ,

9b03_10 number(11,2) ,

10b03_11 number(11,2) ,

11b03_12 number(11,2) ,

12Cate_Item_Code varchar(7) NOT NULL ,

13product_name varchar(60) ,

14product_unit varchar(20) ,

15PRIMARY KEY (UUID,CYC_CODE,Cate_Item_Code))

表已创建。

5、ho进入 *** 作系统命令行

在 *** 作系统命令行运行sqlldr lt/lt_5@ibmlt d:/tmp/t.ctl

提交导入脚本,逻辑记录计数79537

6、exit回到sqlplus查询导入结果

SQL>select count(*)from JB603_JB603_SUB3

COUNT(*)

----------

1、用navicat premium,可以同时连接mysql和oracle,支持在各种数据库系统间传输数据

2、用mysqldump备份数据

mysqldump -uuser01 -pp123456 db01 >db01.sql

3、然后在oracle导入sql数据

SQL>@db01.sql

可能会有语句兼容问题,根据提示db01.sql参数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7396086.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存