cmd脚本与sqlplus没有返回任何结果

时间:2013-04-19 19:11:56

标签: batch-file cmd sqlplus

我是一个cmd脚本,现在看起来像这样:

for /f "delims=" %%a in ('sqlplus user/pass@OMP1 @CheckRowCount.SQL') do set rowcount=%%a
if %ROWCOUNT% GTR 0 (
c:\Autobatch\Spotfire.Dxp.Automation.ClientJobSender.exe     http://server/spotfireautomation/JobExecutor.asmx c:\AutoBatch\backup\Trigger_Test.xml
)EXIT

我知道

'sqlplus user/pass@omp1 @checkrowcount.sql'

有效,因为当我单独运行时,我确实在sqlplus中获得了一个rowcount。

c:\Autobatch\Spotfire.Dxp.Automation.ClientJobSender.exe     http://server/spotfireautomation/JobExecutor.asmx c:\AutoBatch\backup\Trigger_Test.xml

在CMD中单独运行时也可以正常工作。

我想要做的是,如果sqlplus命令返回的行数为> 0,运行另一个命令。否则退出...似乎无法将它们串在一起工作。

1 个答案:

答案 0 :(得分:0)

添加代码段中的两个顶行,查看%rowcount%的设置。

echo "%ROWCOUNT%"
pause
if %ROWCOUNT% GTR 0 (

您可能会发现您的sqlplus命令在结尾处返回一个空行,而rowcount被设置为空。在那种情况下,这应该工作:

for /f "delims=" %%a in ('sqlplus user/pass@OMP1 @CheckRowCount.SQL ^|findstr "[0-9]" ') do set rowcount=%%a