Como utilizar un cursor

adrian2022
05 de Diciembre del 2005
alguien podria decirme como utilizar un cursor en una procedure, para ir recorriendola.

Irene
05 de Diciembre del 2005
Hola, prueba a ver si te sirve esto
DECLARE
CURSOR C IS
SELECT nombre_campos FROM tabla
WHERE (condicion sólosi es necesaria)

BEGIN
FOR C1 IN C
LOOP
BEGIN
con c1.nombre_campo reliazamos la setencia q se quiera
END;
END LOOP;
END;

progus
05 de Diciembre del 2005
Los cursores pueden ser inplicitos o explicitos

si utilizas explicitos tienes que declararlo junto sentencia select
para recorrerlo puede utilizar un bucle for, while...

for nobrevariablereg (nohace falta declararla) in micursor (cursor explicito declarado) loop

end loop;

el for abre y cierra el cursor automaticamente

pero a veces es conveniente utilizar un while
entonces se abre el cursor

se recoge información con un fetch y se vuelca en una variable o varia del tipo columna que devuelve la select del cursor.

while cur%found (devuelve valor verdadero sie el ultimo fecth recoge infromación) loop
.
.
.
end loop

tambien puedes usar %notfound, %rowcount (devuelve numero de filas recuperadas), %isopen (devulve verdadero si el cursor esta abiwerto).
estos son atributos del cursor.

adrian2022
05 de Diciembre del 2005
COMO utilizo el fetch con el while