linux直接执行SQLLDR脚本,linux上如何定时执行sql load

if you want use bash and call if by using "crontab", here is one draft sample for the main points:

Note:

1) you need to very careful about the environment variable, like ORACLE_HOME when calling from crontab.

2) you can add "set -x" at the beginning to debug it when you coding

$ if [ -e load_data.dat ] # make sure no duplicated running

then

###get the file list except the last one, since the last may still not finish the ftp

ls -ltr MC_*.dat | awk '  {  if ($7!=""  ) print  $7 }'   > aa.list

ls -ltr MC_*.dat | awk '  {  if ($7!=""  ) print  $7 }' | tail  -1   >> aa.list

cat aa.list | uniq -c | awk '{if ($1==1) print $2}' > bb.list

### copy all the files to a standard temp file for sqlldr using

cat bb.list | sed 's/^/cat /g' | sed 's/$/ \>> load_data.dat/g' > bb.sh

sh bb.sh

### call sql loader here use the the temp file "load_data.dat"

####################

#please add you sqlldr code here, you can have a pre_build control file with infile="load_data.dat"

####################

#move out the loaded data to a backup folder, here is "bak" folder

cat bb.list | sed 's/^/mv /g' | sed 's/$/ bak\/./g' > cc.sh

sh cc.sh

### clean up

rm aa.list bb.sh cc.sh bb.list

rm load_data.dat

else

echo "$0 is running!"

fi

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值