情况1:在控制台中输入:sqlldr userid=KOUHEN/KOUHEN@SD01 control=C:\aa.ctl log=C:\aaaaaa.log后,打出的log存放在指定的路径C:\下。情况2:建立一个批处理文件(C:\batch\test.bat),然后执行sqlldr userid=KOUHEN/KOUHEN@SD01 control=C:\aa.ctl log=C:\aaaaaa.log(与情况1一样)后,打出的log却存放在指定的路径C:\batch\下(跟批处理文件同级目录),而不是我指定的路径,请问这是为啥啊?
如何才能在批处理中实现和控制台一样的效果啊?希望各位大虾不吝赐教,不胜感激!!!

解决方案 »

  1.   

    bat里头这么写
    c:
    cd \
    sqlldr userid=zb/zb control=c:\aaaa.ctl log=c:\aaaa.log
      

  2.   

    你好,现在可以执行了,可是我怎么控制不了生成LOG的名字和路径呢? 我把路径改到了C:\YushutuShindo\batch\log\下,可是还生成到C:\下非常感谢你的帮助
      

  3.   

    我现在执行后发现生成的LOG的名字是由control=C:\aa.ctl 这个aa决定的,生成的名字一样。
    而不是我指定的log=c:\aaaa.log名字,这个问题能解决吗?谢谢!
      

  4.   

    ctr文件如下:
    load data
    infile 'C:\YushutuShindo\batch\data\T_SHIKAKARI.dat' 
    truncate into table T_SHIKAKARI 
    (
        ID SEQUENCE( max ),
        .....
    )ctr文件里可以控制log路径吗?谢谢
      

  5.   

    本来就是log=c:\aaaa.log指定的名字啊
    跟control=C:\aa.ctl没有关系的
    我随便改了个名成功了..你再仔细看看
    哪里有问题
      

  6.   

    我说错了你只要把bat里面的
    log=c:\aaaa.log
    改成
    log=C:\YushutuShindo\batch\log\aaaa.log
    就行了
    这样log会放到C:\YushutuShindo\batch\log\下的我试过了
      

  7.   

    下面是我的批处理。执行后,在C:\下生成bb.log,不知道为什么?你试试,谢谢!!!
    SET ORACLE_SID=SD01COM
    SET ORA_USER=KOUHENTEST/KOUHENTESTC:\YushutuShindo\batch\log\
    cd\      sqlldr userid=%ORA_USER%@%ORACLE_SID% control=C:\YushutuShindo\batch\ap\sqlldr\ctl\bb.ctl 
                 log=C:\YushutuShindo\batch\log\test.log
    if %ERRORLEVEL% !=0 goto error:error
    echo ******* エラー発生! ******** %date%  %time% >> %LOG_FILE%
    exit
      

  8.   

    晕哥你也没告诉我你把c:\下那个ctr移动到C:\YushutuShindo\batch\ap\sqlldr\ctl\这个下面了.
    晕死
    你这样改
    SET ORACLE_SID=SD01COM
    SET ORA_USER=KOUHENTEST/KOUHENTESTC:
    cd \
    cd YushutuShindo\batch\ap\sqlldr\ctl      sqlldr userid=%ORA_USER%@%ORACLE_SID% control=C:\YushutuShindo\batch\ap\sqlldr\ctl\bb.ctl
                log=C:\YushutuShindo\batch\log\test.log
    if %ERRORLEVEL% !=0 goto error:error
    echo ******* エラー発生! ******** %date%  %time% >> %LOG_FILE%
    exit
      

  9.   

    你好,我刚才照你说的改了

    SET ORACLE_SID=SD01COM 
    SET ORA_USER=KOUHENTEST/KOUHENTEST 
    C: 
    cd \ 
    cd YushutuShindo\batch\ap\sqlldr\ctl       sqlldr userid=%ORA_USER%@%ORACLE_SID% control=C:\YushutuShindo\batch\ap\sqlldr\ctl\bb.ctl 
                log=C:\YushutuShindo\batch\log\test.log 
    结果:程序可以执行,但是没有log 

    C: 
    cd YushutuShindo\batch\ap\sqlldr\ctl       sqlldr userid=%ORA_USER%@%ORACLE_SID% control=C:\YushutuShindo\batch\ap\sqlldr\ctl\bb.ctl 
                log=C:\YushutuShindo\batch\log\test.log 
    结果:程序可以执行,log出力在批处理同级目录下,log名叫bb.log。真不知道为什么?你再帮忙看看,万分感谢!!!
      

  10.   

    第一个结果应该不是没有log而是出力到你要的目录C:\YushutuShindo\batch\log下了吧..
      

  11.   

    我看了,执行第一个C:\YushutuShindo\batch\log下没有内容啊,怪了。
      

  12.   

    改为
    C: 
    cd \ 
    cd C:\YushutuShindo\batch\log
    这回应该错不了.
    脑袋乱了我都呵呵
      

  13.   

    路径是对了,但是log名字好像不对,生成bb.log,也就是ctl文件的名字。害你很辛苦,非常感激,真是个大好人啊!!!
      

  14.   

    没道理啊,我昨天在单位的时候帮你试了一下没问题的啊
    log名是可以随便起的..

    现在合同到期在家呆着
    家里没有环境
    帮不到你了.
    你将log名换个名看看
    随便换个就行
    看看行不行