sqlldr这个命令可以将文本中的数据 大批量的 导入到oracle数据库表中
在win7下使用很简单,自己亲自动手试了下,分享给大家
1.建立一个简单的文本文件,比如:testLoad.txt,内容如下:
1,"test",33
2,"test",33
3,"test",33
4,"test",33
5,"test",33
6,"test",33
7,"test",33
8,"test",33
9,"test",33
10,"test",33
2.在数据库中建立一个表,比如:
create table emp(
id number(5),
name varchar2(20),
age number(3),
constraint pk_id primary key(id));
3.建立一个简单的控制文件,比如:test.ctl,内容如下:
load data--
infile 'f:\testload.txt'
append
into table test.emp--test为用户名,emp为表名--向哪个表追加记录
fields terminated by ','
(id ,
name ,
age
)
4.打开cmdd命令行工具,sqlplus登录到相应的数据库,输入如下命令
sqlldr control='f:\test.ctl' data='f:\testLoad.txt'
执行结果显示 记录数
5.如果想记录执行的过程和日志的话,可以这么写;
sqlldr control='f:\test.ctl' data='f:\testLoad.txt' log='f:\log.log'
6.sqlldr用到的主要参数
1)userid-- ORACLE username/password --数据库 用户名/密码
2)control –控制文件
3)log –记录的日志文件
4)bad –坏数据文件,记录错误的未加载数据
5)data –数据文件,* data参数只能指定一个数据文件,如果控制文件也通过infile指定了数据文件,并且指定多个,则sqlldr在执行时,先加载data参数指定的数据文件,控制文件中第一个infile指定的数据文件被忽略,但后续的infile指定的数据文件继续有效
6)discard –丢弃的数据文件
7)discardmax –允许丢弃数据的最大值 (默认全部)
8)skip --跳过记录数,从数据文件中,从第一行开始要计算要跳过的行数(默认0)
9)load -- Number of logical records to load (默认全部)
10)errors –允许的错误记录数,超过则终止任务(默认50)
11)rows -- Number of rows in conventional path bind array or between direct path data saves(每次提交的记录数,默认:常规路径64,直接路径全部,所以使用直接路径的话,效率会比普通的好太多太多)
12)bindsize -- Size of conventional path bind array in bytes(每次提交记录的缓冲区的大小,字节为单位,默认256000)
13)silent --禁止输出信息(header,feedback,errors,discards,partitions)
14)direct –使用直通路径方式导入(默认FALSE)
如果表中有索引的话,是不能指定direct=TRUE的,除非使用skip_index_maintenance=TRUE,这个就是在导入的时候忽略索引,所以在数据导入完毕以后,查看索引的状态应该都是无效的,需要重建之,如下SQL:select * from dba_indexes where table_name='?' ;
alter idnex index_name rebuild ;
重新建立索引要比新建索引快。
15)parallel --并行导入(默认FALSE,注意:parallel并不是让一个sqlldr语句起多个进程来加载数据,而是不锁住加载表,允许别的直接路径加载.所以要使parallel起作用,应该先将要加载的数据文件分成多个,用多个sqlldr语句同时加载,如下例:
sqlldr userid=scott/tiger control=load1.ctl data=data1.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load2.ctl data=data2.txt direct=y parallel=true & sqlldr userid=scott/tiger control=load3.ctl data=data3.txt direct=y parallel=true &)
分享到:
相关推荐
windowns下利用bat命令+oracle的sqlldr功能导入数据,导入速度很快
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
oracle sqlldr多文件批量导入
Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...
oracle sqlldr导入带有自动增加的数据实例
VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...
C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹
同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...
oracle sqlload详解文档 从源码到案列详细说明,让你一分钟学会sqlload
利用 sqluldr2导出数据 使用sqlldr导入数据 通过merge into 合并更新数据。
oracle sqlldr 工具应用说明,将固定格式的文件数据导入到数据库中
使用sqlldr批量导入数据:http://blog.csdn.net/gengwx_2008/article/details/43792301
oracle 11.2客户端(linux) sqlldr相关文件 如果oracle客户端用的是rpm方式安装: sqlldr命令放在bin 其他文件放在lib 如果oracle客户端用的是直接解压方式: 所有都放在根目录即可
Oracle Client sqlldr和ulus.msb文件,Oracle Client端sqlldr工具必须用到的模块
oracle最强大的sqlldr上传工具
利用sqlldr大量数据导入,方便,快速
oracle11g基本客户端,主要是用于windows环境下sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
修改参数为自己本机配置后,运行脚本,复制输出结果到cmd下,直接运行即可批量将excel文件内容传输至指定Oracle表格中。 包含: sqlldr配置文件详解.sql 批量sqlldr导入.py 批量导入文件SQL语句 示例:祁东县.ctl
用的是11.2.0.4的Instant Client,Oracle没给sqlldr,Tools里面也没有(12C就有)。 网上下载了几个都是11.2.0.1的sqlldr,包括标了版本号的,都需要替换库文件。 这个是自己安装p13390677_112040_Linux-x86-64_4of7...
用过PLSQL developer么?配合起来不错,不用写控制文件了