5

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

1 Answer 1

9

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

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.