我是在WIN下的命令行模式做的
Mysql>select * from my_mysql_table into outfile 'c: /my_tmp.txt'
二、写控制文件
用记事本开文档写完后改扩展名为.ctl,以下是具体内容
load data
infile 'c:/my_tmp.txt'
into table my_ora_table
replace
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.
用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(*)
----------
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)