Como utilizar un cursor
alguien podria decirme como utilizar un cursor en una procedure, para ir recorriendola.
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;
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;
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.
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.
