数据库表脚本
create table T_SQLLDR_TEST
(
batchid VARCHAR2(32) not null,
c_result VARCHAR2(20),
create_tm DATE,
end_tm DATE,
n_count NUMBER,
err_msg VARCHAR2(200)
);
控制文件
Load data
infile 'G:\testcmd\data.txt'
into table T_SQLLDR_TEST
truncate
fields terminated by '|'
trailing nullcols
(
batchid,
c_result,
create_tm DATE"YYYY-MM-DD HH24:MI:SS",
end_tm DATE"YYYY-MM-DD HH24:MI:SS",
n_count INTEGER EXTERNAL,
err_msg
)
数据文件:以竖线分隔的
20211221-QLXKENBVKI|0|2021-12-21 15:56:50|2021-12-21 15:57:00|10|ok
20211221-QLXKENBMM|0|2021-12-21 15:57:50||8|not ok
执行语句
sqlldr userid=username/password@orcl control=G:\testcmd\sqlldr.ctl bad=G:\testcmd\err.log log =G:\testcmd\log.log
如果ctl文件中不指定导入的数据文件,即不使用infile指定文件,可使用下列命令
Sqlldr scott/tiger@instanceid control=sqlldr.ctl data=sqlldr.dat
另外,在ctl文件中指定字段类型
CHAR 字符型
INTEGER EXTERNAL 整型
DECIMAL EXTERNAL 浮点型
DATE 'YYYYMMDD' 日期型
csv格式文件分隔符是:',',如果内容中含有逗号','这一行就无法导入,其他行成功
fields terminated by ','
excle文件没法直接导入,需要另存为制表符分隔的txt文本文件,分隔符用X'09'
Load data
infile 'G:\testcmd\data.txt'
into table T_SQLLDR_TEST
truncate
fields terminated by X'09'
trailing nullcols
(
batchid,
c_result,
create_tm DATE"YYYY-MM-DD HH24:MI:SS",
end_tm DATE"YYYY-MM-DD HH24:MI:SS",
n_count INTEGER EXTERNAL,
err_msg
)