Oracle sqlloader


sqlldr userid=scott/tiger direct=y control=d:\book1.ctl


SQL> create table sqlload_test(id number(2),
                               name varchar2(10));

--book1.ctl
load data
infile 'book1.csv'
into table sqlload_test
fields terminated by ','
(id ,
 name
)


--ldtest.ctl

load data
infile *
into table loader_test
replace
fields terminated by ','
(id,
 dt date 'dd/mm/yyyy',
 data "upper(:data)"
)
begindata
1,21/6/1999,hello
2,5/1/2000,oracle
3,15/3/2001,java


--加载固定格式数据 position

load data
infile *
into table dept
repalce
( deptno position(1:2),
  dname  position(3:16),
  loc    position(17:29)
)
begindata
10Accounting    Virginia,usa


可以用*代替数字,表示下一位置。也可以重复使用位置。

load data
infile *
into table dept
repalce
( deptno      position(1:2),
  dname       position(*:16),
  loc         position(*:29),
  entire_line position(1:29)
)
begindata
10Accounting    Virginia,usa


--加载日期字段
dt date 'dd/mm/yyyy'


--加载带有函数的字段

name "upper(:name)"


--加载内嵌换行符的字段

参考《9i-10g-11g编程艺术》 sqlloader章节


--加载LOB数据

参考《9i-10g-11g编程艺术》 sqlloader章节

 

--注意
(into)
其中append为数据装载方式,还有其他选项:  
a、insert,为缺省方式,在数据装载开始时要求表为空  
b、append,在表中追加新记录  
c、replace,删除旧记录,替换成新装载的记录  
d、truncate,同上

sqlloader默认使用字符长度char(255),如果字符字段长度超过255会报错,加大字符长度即可

fields terminated by ',' optionally enclosed by '"'
蓝色部分允许在字符中使用引号,如 ""USA""


--使用参数文件装载数据
sqlldr parfile=/u01/load.par

load.par为参数文件:
userid=ikki/ikki
control='/u01/loadtest.ctl'
data='/u01/loadtest.csv'
log='/u01/loadtest.log'
direct=true
unrecoverable=true  --不需要在重做日志文件中记录新装载的数据

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27633655/viewspace-1081523/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27633655/viewspace-1081523/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值