【发布时间】:2011-06-23 15:40:59
【问题描述】:
我们有以下批处理脚本:
(
echo @release.sql
echo exit
) | sqlplus x/y@orcl
if %errorlevel% gtr 1 goto dberror
问题是 - 当出现 sql 错误时,语句 if %errorlevel% gtr 1 永远不会出现。
如果我们将垃圾命令放在 release.sql 文件中,sqlplus 会报错:
SQL> SP2-0042: unknown command "blah" - rest of line ignored.
SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
但是%errorlevel%还是等于0,怎么判断是sql出错了?
更新:此代码确实适用于某些 sql 错误。如果我执行drop table blah,它将起作用,但仅使用命令blah 将不起作用
【问题讨论】:
标签: oracle sqlplus batch-file