如何将MySql数据导入至Oracle中

 我来答
福喜900
推荐于2017-12-16 · TA获得超过6.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:9883万
展开全部
您好,很高兴为您解答。
一、将表中数据导入文本文件保存
我是在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.
育知同创教育
2016-02-19 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
用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 (
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 product_name varchar(60) ,
14 product_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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
denghui1986
2015-03-28
知道答主
回答量:31
采纳率:0%
帮助的人:12.1万
展开全部
写个小程序好了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2016-01-09 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
一、创建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 - Production 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行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式