通过 .bat 执行 Sqlplus 总是返回 0

Posted

技术标签:

【中文标题】通过 .bat 执行 Sqlplus 总是返回 0【英文标题】:Executing Sqlplus via .bat always returns 0 【发布时间】:2014-05-13 11:34:47 【问题描述】:

这是我的代码。如果数据库连接成功,我只想得到 0 else 1。但是 sqlplus.exe 总是返回 0。

我用参数 user、password 和 databasename 调用文件 sqlplus。在此之后,我尝试获取退出代码,如果连接成功,退出代码应该是 0,但它总是返回 0

call exit | C:\app\client\sahi\product\12.1.0\client_1\BIN\sqlplus.exe
%DBUser%/%DBPassword%@%DBName% 
if errorlevel 0 (
                 echo successfull
                 goto success
                )

我该怎么做?

【问题讨论】:

IF ERRORLEVEL 0 表示“如果错误级别为零或更大”:microsoft.com/resources/documentation/windows/xp/all/proddocs/… 你需要一个if errorlevel 1 goto failure 返回值始终为 0,与连接成功/不成功无关。 如果您这样检查,那么是的,该值将始终显示为零。 如何检查连接性?你有想法吗? Sql*plus always return exit code 0?的可能重复 【参考方案1】:

这是检查错误级别 0 的一种方法:

if not errorlevel 1 (
                 echo successfull
                 goto success
                    )

【讨论】:

以上是关于通过 .bat 执行 Sqlplus 总是返回 0的主要内容,如果未能解决你的问题,请参考以下文章

bat 文件运行 sqlplus 然后根据结果执行命令?

bat执行sqlplus语句,省去@xx.sql过程

windows下使用SQLPLUS制作BAT执行SQL文件

从 SQLPlus 捕获 Java 中的错误代码

获取 sqlplus 的结果并放入脚本 .bat 上的变量中

登录 sqlplus 为啥总是打印用户名?