现在有一个需求,就是从txt文件中读数据(百万级)并快速插入到 oracle中,因此想使用sqlldr。遇到的问题是:通过windows的命令行执行sqlldr 时,正常运行结束,log 显示数据全部加载成功,没有报错,而且也没有生成 bad 文件,可是实际插入到数据库中的记录数总是比原始数据少。比如原始数据100000条,插入库后只有99977。原始数据1792327,插入后只有1792208。
    想了很久也不知道原因在哪里,请遇到过的前辈们指教。
----------------------------------------------------------------------------------
(1) sqlldr命令: sqlldr userid=test/test123@ccs  control='D:/aa.ctl'  errors=100000  log='D:/aa.log'
(2) aa.ctl:
load data
infile 'D:/bb.txt'
badfile 'D:/bb.bad'
discardfile 'D:/bb.dsc'
append into table a001
fields terminated by '|'
trailing nullcols
(
a001_id,
a001_type,
a001_datetime,
a001_jrnl,
a001_mid,
a001_amount,
a001_cardno,
a001_summary,
a001_result,
a001_temp1,
a001_temp2
)
(3) 原始数据格式示例:00|0|20170603260183|woen2afe21faw234aegg|927986916|29|86916491824686759|