sqlloader 直接路径和常规路径_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数据库有用!

分享到:

2011-04-03 11:21

浏览 1712

分类:数据库

评论

1 楼

kandari

2012-01-24

学习到了,解决了实际问题!谢了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值