1.创建数据文件:
如,在D:\创建 zhaozhenlong.txt 文件,文件内容为:
11,12,13
21,22,23
31,32,33
2、创建控制文件:
如,在D:\创建 zhaozhenlong.ctl 文件,文件内容为:
load data
infile 'd:\zhaozhenlong.txt'
append into table zhaozhenlong
fields terminated by ','
trailing nullcols // 表的字段没有对应的值时允许为空
(c1,c2,c3)
3、在数据库中创建表:
create table zhaozhenlong(c1 varchar(20),c2 varchar(20),c3 varchar2(20));
4、在‘开始’/‘运行’中,执行:
sqlldr userid=cs/cs@orademo control=d:\zhaozhenlong.ctl
5、查询数据库:
select * from zhaozhenlong
结果为:
C1 C2 C3
1 11 12 13
2 21 22 23
3 31 32 33
//表的字段,可以在里面大做文章
(
T_ID FILLER, // FILLER 关键字 此列的数值不会被装载
T_DATE "CASE WHEN :T_DATE is null THENTO_DATE('2999-12-31','yyyy-mm-dd')ELSE TO_DATE(:T_DATE,'yyyy-mm-dd')END",
//日期类型特别说明,并且要指定其格式
//更一般的格式是T_DATE date ‘yyyy-mm-dd’
T_NAME POSITION(3:6) "UPPER(:T_NAME)", //用位置POSITION来告诉装载的数据
//"UPPER(:T_NAME)" 转换为大写,注意冒号
T_SEX position(*:8) , // 这个字段的开始位置在前一字段的结束位置
ENTIRE_LINE "UPPER(:T_NAME||:T_SEX)" //连接并转换为大写
)
时间类型的字段处理
BIDSTARTTIME "TO_DATE(null)" , //设置该时间字段的值为null
BUYSARTTIME "TO_DATE(TO_CHAR(SYSDATE,'yyyymmdd'),'yyyymmdd')" , //设置该时间字段的值为当前系统的时间
CREATEDATE "to_date(:CREATEDATE,'''yyyy-mm-dd hh24:mi:ss''')"