我们有以下批处理脚本:
( echo @release.sql echo exit ) | sqlplus x/y@orcl if %errorlevel% gtr 1 goto dberror
问题是 – 如果存在sql错误,%errorlevel%gtr 1似乎永远不会出现的声明.
如果我们将spam命令放在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错误.它会工作,如果我删除表格,但它不会只用命令blah
解决方法
看一眼:
更好的SQLERROR
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve052.htm
在OSERROR
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve051.htm