文件名:
sqlldr.ctl
内容:
load data
infile 'test.csv'
preserve blanks
into table t_test
truncate
fields terminated by ',' optionally enclosed by '"'
trailing nullcols
(
flag filler,
col1 constant '',
col2 nullif col2='2',
col3,
col4 defaultif col3='3',
col5 sequence(max, 1),
col6 sequence(count, 1),
col7 sequence(10, 1),
col8 recnum,
col9 sysdate,
col10 date 'YYYY-MM-DD'
)
注释:
col2 nullif col2='2', 如果col2等于2,则给col2赋空值
col4 defaultif col3='3', 如果col3等于3,则给col3赋数据类型的默认值(number赋0,其他赋null)
preserve blanks 保留记录中的空格等
filler 只映射一列数据,但不入库
sequence([count|max|integer][,incr])
count:从当前记录数加incr开始
max:从当前表中最大的值加incr开始
integer:从指定数字开始
incr:步长
recnum
接收到的记录条数,包括skip、discard,reject掉的数据
constant
常量,指定某个字段的值始终为某个值
sysdate
日期,指定某个字段为当前日期
表结构:
create table t_test
(
col1 varchar2(20),
col2 varchar2(20),
col3 varchar2(20),
col4 varchar2(20),
col5 varchar2(20),
col6 varchar2(20),
col7 varchar2(20),
col8 varchar2(20),
col9 date,
col10 date
);
数据文件:test.csv
1,1,a,1,2011-01-01
1,2,a,2,2011-01-02
1,3,a,3,2011-01-03
1,4,a,4,2011-01-04
1,5,a,5,2011-01-05
1,6,a,6,2011-01-06
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7417681/viewspace-709802/
,如需转载,请注明出处,否则将追究法律责任。