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参数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)