感觉这个调用层次太多,而且参数设置也不合理,请看下面流程 
1 我先建立了16个ctl文件(因为有16个dat文件),放在a/ctl文件夹中 
2 将16个dat文件放在了a/dat文件夹中(文件名为:名字_$date.dat) 
3 建立了a/bad,a/dis,a/log 三个文件夹 
4 建立了README文件(readme,备注) 内容是 
dat---*.dat files 
ctl---*.ctl files 
bad---*.bad record files for SQLLDR 
dis---*.dis Discard records for SQLLDR 
log---*.log Log files for SQLLDR 
USAGE: 
./import tablename datfile 
ctl/tablename.ctl must exists 
dat/datfile.dat must exists 
./pump.sh 01_20081201个文件夹 
5 建立了一个脚本文件import.sh 
内容是:date=`date +%Y%m%d_%H%M%S` 
ext=$1_$date 
sqlldr userid=pcrs/pcrs control=ctl/$1.ctl log=log/$ext.log bad=bad/$ext.bad discard=dis/$ext.dis data=dat/$2.dat direct=y 
6 用pump.sh脚本去运行它,内容为: 
import.sh LOAN LOAN_$1 
import.sh LS_APPL_PPSL LS_APPL_PPSL_$1 
import.sh CR_LN_HDR CR_LN_HDR_$1

解决方案 »

  1.   

    给你个参考,可以循环调用的bat文件一个就够了
    @echo off
    :start
    echo 请稍等...........
    for /f %%i in (d:\erpdate\ctl\path.txt) do call :ss %%i
    goto :eof
    :ss
    set file=%1
    sqlldr   userid=erp/erp@eam55  control=d:\erpdate\ctl\%file%  log=d:\erpdate\ctl\log\%file%
    goto :eof
    :end
    @pause在path.txt文件中将你的ctl文件都放进去,格式如下:
    erp_arap_djzb.ctl
    erp_arap_djfb.ctl
    erp_bd_corp.ctl
    erp_arap_djlx.ctl
    erp_sm_user.ctl
    erp_bd_busitype.ctl
    erp_bd_cubasdoc.ctl
    erp_bd_psndoc.ctl
    erp_bd_subjtype.ctl
    erp_bd_balatype.ctl
    erp_bd_deptdoc.ctl
    erp_bd_currtype.ctl
    erp_bd_jobbasfil.ctl
    erp_bd_invbasdoc.ctl