Oracle - Volver desde una exception

 
Vista:

Volver desde una exception

Publicado por IDOIA (43 intervenciones) el 02/04/2004 14:01:47
Hola a todos de nuevo, tengo el siguiente problema, quiero actualizar un campo de un bloque completo(bloques), para ello he utilizado un LOOP,
para recorrerlo, entonces cuando localizo en una Tabla el valor lo pongo en el bloque, y paso al siguiente registro,pero si no lo encuentra debo hacer otra cosa
para actualizarlo. Cuando no lo encuentra, salta la excepcion 'no_data_found' y entonces ejecuto la segunda opción. El problema viene ahora, q no sé como volver ,
o si se puede volver de nuevo al bucle (loop), para seguir con el siguiente registro.

DECLARE
warti varchar2(16);
BEGIN

GO_BLOCK ('bloques');

LOOP
EXIT when :bloques.proyecto is null;
select articulo
into :Bloques.articulo from inventario where largo = :bloques.largo and calidad = :bloques.calidad;

----------------------------> debería poder volver aquí desde la excepción
NEXT_RECORD;

END LOOP;

EXCEPTION
WHEN no_data_found THEN
IF :bloques.tipo = 'FS' THEN
warti := '120123%';
ELSE
warti := '110103%';
END IF;
select nvl(max(articulo),0)
into :control.arti from inventario where articulo like warti;

:bloques.articulo := :control.arti + 1;
END;
Muchas gracias, Un Saludo, Idoia(me voy de vacaciones hasta el dia 19, pero agradeceré vuestras propuestas).
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Volver desde una exception

Publicado por David (10 intervenciones) el 03/04/2004 11:54:12
Lo que puedes hacer es meter la exception dentro del loop:
DECLARE
.......
BEGIN
Loop
EXIT when :bloques.proyecto is null;
BEGIN
select articulo
into :Bloques.articulo
from inventario
where largo = :bloques.largo
and calidad = :bloques.calidad;
----> Aquí metes la exception
Exception When no_data_found
IF :bloques.tipo = 'FS' THEN
warti := '120123%';
ELSE
warti := '110103%';
END IF;
select nvl(max(articulo),0) into :control.arti
from inventario
where articulo like warti;
:bloques.articulo := :control.arti + 1;
END;
END;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Volver desde una exception

Publicado por IDOIA (43 intervenciones) el 19/04/2004 10:05:24
Muchas gracias David, problema resuelto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar