现在遇到了一个很奇怪的问题。
就是写了一个bat的文件。其中会去用for循环来执行sqlplus的命令。这个.bat文件在一台机器上测试过,没有问题。
但是放到另一台机器上就报sqlplus的不能够登陆oracle数据库的错。
也就是如下错误,
SP2-0306:选项无效,用法:conn[ect] [logon] [as {SYSDBA|SYSOPER}] 其中    ::=  [/ ][@ ] | /。请问这是怎么回事??

解决方案 »

  1.   

    难道是那台主机的Tnsnames.ora里没有相关的数据库配置?
      

  2.   

    相关的数据库配置应该是有的 因为如果不使用for循环的话 是可以接续数据库的 查询也是成功的。
      

  3.   

    为啥用for?是循环读取tnsnames.ora里的配置信息么?
    如果是,看看是不是tnsnames.ora里最后多了几行空行,所以读取出来的连接串是空的。
      

  4.   

    FOR /F "delims=" %%D in ('dir /b /a-d /s "%SQL_FILE%\*.sql"') DO (
    ECHO ****************************************************************************** >> %LOG%
    TYPE %%D >>%LOG%
    SQLPLUS -S /NOLOG @%%D user/password@数据库名 >> %LOG%
      

  5.   

    用for循环来读取一个文件夹中的*.sql文件。
      

  6.   

    关键是在一台机器上是没有问题的,在另外一台机器上就出问题了。
    我怀疑是不是有些oracle版本的问题。
      

  7.   

    我看了一下 一个Oracle文件夹里边是ora90 一个是ora92。
    出问题的那个是ora90。
      

  8.   

    能不能把ora90上,每次取出来的内容 都echo出来,看看内容到底是啥?
      

  9.   

    问题找到了,原来是我写的需要用来执行的.sql文件中 没有在末尾加上exit,现在加上了 已经可以正常执行了。
    谢谢热心帮助我的朋友。