读书人

sql*Loader运用总结

发布时间: 2012-07-03 13:37:43 作者: rapoo

sql*Loader使用总结

??? 最近使用sqlLoader导入数据,刚开始研究,先对学习到的内容进行总结:

??? 1.首先,我的sqlLoader是运行在dos(或shell)中的。

??? 2.语法:

?? loader.ctl

load data infile "文件路径/文件名称.txt.."    --文件路径 可以在此处制定也可以在 shell中执行sqlldr时使用,此处不是必须要有的append into table emp fields terminated by "," optionally enclosed by "'";   --可以过滤数据两边的“'”号TRAILING NULLCOLS --记录中没有内容(空格、空白、或null)的列被当作null( empno FILLER,  --跳过该字段,也就是说给字段不需要导入数据库中empname "substr(:empname , 1, 19)",  --主要是体现函数的使用sal, deptno )文件中的数据:'10001','Scott Tiger', '1000', '40' '10002','Frank Naude', '500', '20' 

??

???

?

在shell(或dos)中跑sqlLoader 方法

sqlldr name/pwd@db control=path/to/filename.t data=path/to/datafile direct=true parallel=true log=path/to/logfile

?

?各关键字解释

    userid -- ORACLE 用户名/口令   control -- 控制文件名       log -- 日志文件名       bad -- 错误文件名      data -- 数据文件名   discard -- 废弃文件名discardmax -- 允许废弃的文件的数目         (全部默认)      skip -- 要跳过的逻辑记录的数目  (默认 0)      load -- 要加载的逻辑记录的数目  (全部默认)    errors -- 允许的错误的数目         (默认 50)      rows -- 常规路径绑定数组中或直接路径保存数据间的行数               (默认: 常规路径 64, 所有直接路径)  bindsize -- 常规路径绑定数组的大小 (以字节计)  (默认 256000)    silent -- 运行过程中隐藏消息 (标题,反馈,错误,废弃,分区)    direct -- 使用直接路径                     (默认 FALSE)   parfile -- 参数文件: 包含参数说明的文件的名称  parallel -- 执行并行加载                    (默认 FALSE)      file -- 要从以下对象中分配区的文件skip_unusable_indexes -- 不允许/允许使用无用的索引或索引分区  (默认 FALSE)skip_index_maintenance -- 没有维护索引, 将受到影响的索引标记为无用  (默认 FALSE)

?2.对position(xx{:xx})的理解:

?? position是通过字节定位的,如果数据文件中,如果两天记录中相应字段的长度不等,就无法使用,除非数据文件有严格的限制字段长度可以使用。

?? 研究时间最常的就是 FILLER(跳过某一字段) 的功能是否可以使用position来替换,但对position的理解仅限于上面说的,希望有高手来指点,能否更好的实现字段跳跃功能。。。。。。。

以上是对oracle数据库有用!

1 楼 kandari 2012-01-24 学习到了,解决了实际问题!谢了

读书人网 >SQL Server

热点推荐