如何将MySql数据导入至Oracle中
发布网友
发布时间:2022-04-23 07:57
我来回答
共5个回答
懂视网
时间:2022-04-07 19:16
推荐:《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.
热心网友
时间:2022-04-07 16:24
您好,很高兴为您解答。
一、将表中数据导入文本文件保存
我是在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.
热心网友
时间:2022-04-07 17:42
用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, proct_name, proct_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 '',
`proct_name` varchar(60) default '',
`proct_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 ,
proct_name varchar(60) ,
proct_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, proct_name, proct_unit)
3运行sqlplus /nolog
SQL> conn lt/lt5@ibmlt
建立jb603_jb603_sub3表
SQL> CREATE TABLE jb603_jb603_sub3 (
2 UUID varchar(32) NOT NULL ,
3 CYC_CODE char(2) NOT NULL ,
4 b03_05 number(11,2) ,
5 b03_06 number(11,2) ,
6 b03_07 number(11,2) ,
7 b03_08 number(11,2) ,
8 b03_09 number(9,0) ,
9 b03_10 number(11,2) ,
10 b03_11 number(11,2) ,
11 b03_12 number(11,2) ,
12 Cate_Item_Code varchar(7) NOT NULL ,
13 proct_name varchar(60) ,
14 proct_unit varchar(20) ,
15 PRIMARY 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(*)
----------
79537
热心网友
时间:2022-04-07 19:17
写个小程序好了。
热心网友
时间:2022-04-07 21:08
一、创建jack表,并导入一下数据
mysql> create table jack(id char(100),flwo char(100)) engine=myisam;
Query OK, 0 rows affected (0.08 sec)
mysql> load data infile '/u01/sqlload/taobao_9_11.txt' into table jack fields terminated by ',';
Query OK, 1469199 rows affected (20.09 sec)
Records: 1469199 Deleted: 0 Skipped: 0 Warnings: 0
mysql> select * from jack limit 10;
+-------------+--------+
| id | flwo |
+-------------+--------+
| 13400017749 | 4594 |
| 13400087049 | 5044 |
| 13400826615 | 83029 |
| 13400977755 | 22505 |
| 13401509025 | 2671 |
| 13401584949 | 10435 |
| 13402065168 | 111061 |
| 13402077444 | 2525 |
| 13402133742 | 13204 |
| 13402156116 | 1935 |
+-------------+--------+
10 rows in set (0.01 sec)
二、将jack表的内容导入到txt文本中
mysql> select * from jack into outfile '/mysql/mysql5.5/load/data.txt' fields terminated by ',';
ERROR 1 (HY000): Can't create/write to file '/mysql/mysql5.5/load/data.txt' (Errcode: 13)
mysql> select * from jack into outfile '/mysql/mysql5.5/load/data.txt' fields terminated by ',';
Query OK, 1469199 rows affected (22.34 sec)
mysql> select count(*) from jack;
+----------+
| count(*) |
+----------+
| 1469199 |
+----------+
row in set (0.09 sec)
三、修改data.txt的属主
[root@rhel5 load]# chown oracle:oinstall data.txt
[root@rhel5 load]# more data.txt
13400017749,4594
13400087049,5044
13400826615,83029
13400977755,22505
13401509025,2671
四、将data.txt导入到oracle表mysql中
[oracle@rhel5 ~]$ cd /u01/sqlload/
[oracle@rhel5 sqlload]$ cat mysql.ctl
load data
infile '/mysql/mysql5.5/load/data.txt'
append into table mysql
trailing nullcols
( id char terminated by ',',
flow char terminated by whitespace)
[oracle@rhel5 sqlload]$ sqlldr jack/jack control='mysql.ctl' log=input.log direct=true
SQL*Loader: Release 11.2.0.1.0 - Proction on 星期一 9月 23 15:15:57 2013
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
加载完成 - 逻辑记录计数 1469199。
五、验证
SQL> select count(*) from mysql;
COUNT(*)
----------
SQL> select * from mysql where rownum < 10;
ID FLOW
---------- ----------
1.3400E+10 4594
1.3400E+10 5044
1.3401E+10 83029
1.3401E+10 22505
1.3402E+10 2671
1.3402E+10 10435
1.3402E+10 111061
1.3402E+10 2525
1.3402E+10 13204
已选择9行。