select vacio sin excepcion

sonia
04 de Noviembre del 2005
Hola, estoy haciendo un procedimiento en SQL*Plus y necesitaria saber si hay alguna forma de que, al no haber resultados en un select, no salte una excepcion, para poder seguir en el procedimiento.
Muchas gracias.

Jor-El
04 de Noviembre del 2005
¿ Conoces los cursores ?

sonia
04 de Noviembre del 2005
Muchas gracias, ya si me funciona. Yo conocia los cursores pero no crei que se pudieran aplicar en este caso. Un saludo.

Carlos
04 de Noviembre del 2005
Captura la excepción NO_DATA_FOUND en un bloque BEGIN..EXCEPTION..END;

Un saludo.

Carlos.

sonia
04 de Noviembre del 2005
Eso si lo habia probado, el problema es que una vez que paso al bloque exception, no puedo volver al procedimiento para seguir con la ejecucion, que es lo que necesito hacer. Los cursores se adaptar mejor para esto, porque solo tengo q comprobar que estan vacios y seguir en el mismo procedimiento. Muchas gracias por su interes de todas formas.

Carlos
04 de Noviembre del 2005
>>Eso si lo habia probado, el problema es que una vez que paso al bloque exception, no puedo volver al procedimiento para seguir con la ejecucion, que es lo que necesito hacer.

Eso no es así. Lo que tienes que hacer es INCLUIR la select en un begin..exception..end:

De:

Begin
...
SELECT bla, bla,bla...
...
Exception

End;

Debes pasar a:

Begin
...
Begin
SELECT bla, bla,bla...
Exception
when no_data_found then
bla,bla,bla... (tratamiento de la excepción)
End;
...
Exception

End;

>>Los cursores se adaptar mejor para esto, porque solo tengo q comprobar que estan vacios y seguir en el mismo procedimiento.

Eso tampoco es así. Con lo que te explico arriba este argumento pierde todo su peso. Los cursores obligan a tratamirentos fila a fila, los cuales, en general, ofrecen menos rendimiento que los tratamientos de conjuntos (SQL).

Un saludo.

Carlos.