简单的应用场景:文件内容入库,但是文件名字不能获取到回调到数据库中,可以重新定义一个新的ctl文件,用心的进行入库
ctl文件编写ACCT.ctl
load data
Append into table TBCS.ACCT
fields terminated by '|'
TRAILING NULLCOLS
(
acct_id,
cust_id,
payment_type,
REMARK,
CUST_CLASS,
ACCT_CODE,
filename constant "file_name",
intime sysdate
)
在ctl文件中,先给文件名固定一个值,
filename=文件名字
cat ACCDATAISSUED.ctl| sed "s/file_name/${filename}/g" > newctl.ctl
$ORACLE_HOME/bin/sqlldr USERID=$dbstr CONTROL=newctl.ctl DATA=`echo "$filename"` bad=ACCT_bad.log Log=$FILE_LOG_INS ERRORS=999
用完新的ctl文件后删掉,等下次用的时候再重新生成
rm -f newctl.ctl