2010-04-23 14 views
5

que tienen una secuencia de comandos psql que tiene este aspecto:¿Hay alguna forma de deshacer y salir de un script psql por error?

-- 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 

¿Es posible salir del guión y dejar de procesar el resto de la secuencia de comandos?

Respuesta

8

Poner las siguientes líneas en la parte superior de su archivo:

WHENEVER OSERROR EXIT ROLLBACK 
WHENEVER SQLERROR EXIT ROLLBACK 

... y asegúrese de que usted tiene un RAISE; al final de sus controladores de excepciones.

+0

Creo que eso es todo. ¡Gracias! – dtc

1

Hmmm ... PL/SQL tiene GOTO por lo que podría saltar a una etiqueta que coloque justo al final del script.
por ejemplo:

GOTO the_end; 
[rest of script here] 
<<the_end>> 
Cuestiones relacionadas