在批处理文件中逐个运行SQL PLUS

时间:2013-12-27 15:34:24

标签: batch-file oracle11g sqlplus

我在目录中有一些sql个文件,我想使用我的批处理文件编码使用sql运行sql plus文件。

我的代码如下所示。

start sqlplus %DBUName%/%DBPwd%@%GIName% "@%~dp0SQL\SetUp\SETUP.sql" 
start sqlplus %DBUName%/%DBPwd%@%CIName% "@%~dp0SQL\DBLINK\CIDBLINK.sql" '''%MDBName%'''
start sqlplus %DBUName%/%DBPwd%@%CSName% "@%~dp0SQL\DBLINK\CUDBLINK.sql" '''%MDBName%'''
start sqlplus %DBUName%/%DBPwd%@%PIName% "@%~dp0SQL\DBLINK\PIDBLINK.sql" '''%MDBName%'''
start sqlplus %DBUName%/%DBPwd%@%PUName% "@%~dp0SQL\DBLINK\PUDBLINK.sql" '''%GIName%'''

我希望一个接一个地运行上面的命令而不是并行运行,因为每个sql都依赖于另一个。

期待你的帮助。

1 个答案:

答案 0 :(得分:0)

只需使用“start / wait”,或使用“call”并将每个脚本执行放在自己的批处理文件中,该文件计算退出代码并返回0,1或错误代码。

此脚本证明它有效:

@echo off
call :timepause 3
call :timepause 3
call :timepause 3
echo %errorlevel%
call :rerror 2
echo %errorlevel%
goto :end
:timepause num
echo timeout for %1 seconds...
ping -n %1 -w 1000 127.1 >NUL
exit /b 0
:rerror num
echo error after %1 seconds...
ping -n %1 -w 1000 127.1 >NUL
exit /b 1
:end
pause