We have the following batch script:
(
echo @release.sql
echo exit
) | sqlplus x/y@orcl
if %errorlevel% gtr 1 goto dberror
Issue is - the statement if %errorlevel% gtr 1
never appears to be true when there is a sql error.
If we put garbage commands in the release.sql file, sqlplus does complain:
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
But %errorlevel%
still equals 0. How can we determine that there was a sql error?
Update: This code DOES appear to work for some sql errors. It will work if I do drop table blah
but it won't work with just the command blah
Take a look at:
WHENEVER SQLERROR
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve052.htm
WHENEVER OSERROR
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve051.htm
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With