Oracle导入大数据

来源:互联网 发布:网易smtp服务器 端口 编辑:程序博客网 时间:2024/04/20 12:42

最近在做一个用oracle做为对照组的实验,涉及了用oracle对大量数据进行导入。在网上找了一些方法,个人觉得用控制文件(.ctl)是比较靠谱的。我用的oracle版本是11g,虚拟机配的win8环境。数据集为txt文件。

1 .建表:在数据中创建一个新表,比如

 create table test(a1 int,a2 int,a3 int);  

2 .新建ctl文件,就是在记事本中打代码,然后修改文件后缀名就行了,命名为load(后缀名为ctl),如:

 load data infile 'C:\data\chart1.txt' replace into table test (a1 char terminated by ',',  a2 char terminated by ',',  a3 char terminated by whitespace)

解释一下,‘C:\data\chart1.txt’ 是我想要导入表中的数据文件所在的位置;replace是删除表中原有的内容重新放数据进去,可以根据自己需求换的,换成append就是在表末尾追加数据;因为我的数据格式为

123456789...

所以在a1和a2后面都是terminated by ‘,’,就是用逗号分割,而a3后面是下一行输入,所以是whitespace分割,所以你可以根据自己的需求定义不同的分割符。然后把load.ctl和你的数据放在同一个文件夹下。

3 .在控制台中进入到你存放ctl文件和数据文件的文件夹,可用命令cd进入到相应的文件夹,然后执行语句:

sqlldr userid=scott/tiger control=load.ctl

scott是我的用户,你要改成你自己的表所在的用户,tiger是我的密码,同样也要改成你自己的。control后面就是你要用的控制文件的文件名,因为前面我命名为load了,所以这里就是load。执行后等结果就好,如果你想知道时间的话,会在你的存放数据和ctl文件的文件夹里自动生成日志文件的。

SQL*Loader: Release 11.2.0.1.0 - Production on 星期日 6月 5 15:46:46 2016Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.控制文件:      load.ctl数据文件:      C:\data\chart1.txt  错误文件:    chart1.bad  废弃文件:    未作指定(可废弃所有记录)要加载的数: ALL要跳过的数: 0允许的错误: 50绑定数组: 64 行, 最大 256000 字节继续:    未作指定所用路径:       常规表 HOUSEBASE,已加载从每个逻辑记录插入选项对此表 REPLACE 生效   列名                        位置      长度  中止 包装数据类型------------------------------ ---------- ----- ---- ---- ---------------------HOUSE_ID                            FIRST     *   ,       CHARACTER            PUR_DATE                             NEXT     *   ,       CHARACTER            LON                                  NEXT     *   ,       CHARACTER            LAT                                  NEXT     *   ,       CHARACTER            HOUSE_TYPE                           NEXT     *   ,       CHARACTER            HOUSE_SIZE                           NEXT     *  WHT      CHARACTER            表 HOUSEBASE:  10000000 行 加载成功。  由于数据错误, 0 行 没有加载。  由于所有 WHEN 子句失败, 0 行 没有加载。  由于所有字段都为空的, 0 行 没有加载。为绑定数组分配的空间:                 99072 字节 (64 行)读取   缓冲区字节数: 1048576跳过的逻辑记录总数:          0读取的逻辑记录总数:      10000000拒绝的逻辑记录总数:          0废弃的逻辑记录总数:        0从 星期日 605 15:46:46 2016 开始运行在 星期日 605 15:50:49 2016 处运行结束经过时间为: 00: 04: 02.35CPU 时间为: 00: 00: 24.88

这是我的日志文件,因为实际中我用的不是test表,所以里面的表名会不太一样。

总结:以上就是导入大量数据的全过程,希望会对你有所帮助!

1 0
原创粉丝点击