tags:

views:

136

answers:

3

I have a psql script that looks like this:

-- first set of statements
begin
sql statement;
sql statement;
sql statement;
exception
    when others then
    rollback
    write some output
    (here I want to exit the entire script and not continue on to the next set of statements)
end
/
-- another set of statements
begin
sql statement;
sql statement;
sql statement;
exception
    when others then
    rollback
    write some output
    (here I want to exit the entire script and not continue)
end
/
... and so on

Is it possible to exit the script and stop processing the rest of the script?

+1  A: 

Hmmm... PL/SQL does have GOTO so you could jump to a label you place right at the end of the script.
eg:

GOTO the_end;
[rest of script here]
<<the_end>>
hamishmcn
+3  A: 

Put the following lines at the top of your file:

WHENEVER OSERROR EXIT ROLLBACK
WHENEVER SQLERROR EXIT ROLLBACK

... and make sure you have a RAISE; at the end of your exception handlers.

Vadim K.
I think this is it. Thank you!
metanaito
+1  A: 

I tend to use raise_application_error when I want to halt execution and pass back a custom error code/message to the calling script:

http://www.java2s.com/Tutorial/Oracle/0480__PL-SQL-Programming/UsingRAISEAPPLICATIONERROR.htm

RenderIn