SqlPlus不会在批处理循环中执行,为什么?

时间:2013-11-19 12:14:08

标签: oracle batch-file sqlplus

我创建了一个批处理脚本,它递归遍历目录下的所有.sql文件。我的问题是,我可以回显使用此版本正确处理的所有文件:

 @for /r "%PWD%\06-Instalaciones" %%a in (*.sql) do (IF "C:%%~pa" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" echo %%~fa )

但对于每个处理的sql文件,我似乎无法成功调用SqlPlus而不是echo:

@for /r "%PWD%\06-Instalaciones" %%a in (*.sql) do (IF "C:%%~pa" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" %ORACLE_HOME%/bin/sqlplus -L -S FOO/BAR@%sid% @%%~fa)

我收到以下错误:“(此时HOST意外发生。”。

谢谢。

1 个答案:

答案 0 :(得分:1)

感谢安格斯指出我的错误。我的一个变量中有一个空格!特别是%sid%。如果有人需要,我会留下我的代码:

@echo off
@SET PWD=%~dp0
@SET sid=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx.xxx.xxx.xxx)(PORT=1521))(CONNECT_DATA=(SERVER=dedicated)(SID=xxxxx))) 
@for /r "%PWD%\06-Instalaciones" %%f in (*.sql) do (IF "C:%%~pf" NEQ "%PWD%06-Instalaciones\ProximaInstalacion\" %ORACLE_HOME%/bin/sqlplus -L -S FOO/BAR@"%sid%" @%%~f >> log.txt)