基本步骤:
1) 数据文件,文本格式,例如 test.log 内容如下:
8600000000000$20111031$2$1$1$2$3
8600000000000$20111031$2$1$1$1$3
2) 控制脚本,test.ctl 内容如下:
load data
CHARACTERSET 'UTF8'
append
into table VP_USER_REQ_LOG
fields terminated by '$'
(
MSISDN,
CREATE_TAME DATE "YYYYMMDD",
REQ_SOURCE,
ACCESS_OBJID,
USER_ID,
ACCESS_TYPE,
ISIDEX
)
注意:如果日期类型的格式,需要添加 DATE "YYYYMMDD"
3) shell 脚本编写 . testshell.sh
#!/bin/bash
db_user=vp_3
db_password=zaixin
db_sid=orcl
localdir='/tmp/testshell/log' # 数据文件所在目录
logfile='/tmp/testshell/sh.log' # 生成日志文件
control_file='/tmp/testshell/test.ctl' # 控制脚本
cd /opt/app/oracle/product/10.2.0/db_1/sqlldr # 进入sqlldr所在目录
for d in `ls $localdir`
do
if [ -f $localdir"/"$d ]
then
sqlldr userid=$db_user/$db_password@$db_sid data=$localdir/$d control=$control_file log=$logfile
else
echo "no data"
fi
done
4)执行脚本,查看结果
sh testshell.sh
查询结果如下: