La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Oracle/587372-Cursores-en-oracle.html

Cursores en oracle

Cursores en oracle

Publicado por renxo (1 intervención) el 21/01/2006 02:51:05
Amigos les hago llegar mi cordial saludo y de antemano gracias por la ayuda
Tengo un cursor, que por ejemplo tiene los campos codigo de area y codigo de trabajador.
Yo deseo recorrerlo y realizar un quiebre por codigo de area, eso lo necesito por ejemplo al querer agrupar determinada información.

Ejemplo:
cursor c_areas is
select cod_area, cod_trab from t_movimientos

Al recorrerlo:

for r in c_areas loop
Acá quiero realizar un quiebre por cod_area

end loop ;

Espero me hayan entendido lo explicado

RE:Cursores en oracle

Publicado por Hector (127 intervenciones) el 24/01/2006 18:44:50
La solucion que se me ocurre va mas o menos asi:

v_EsElPrimero := 0;
For r in c_areas Loop
If v_EsElPrimero = 0 Then
v_Actual := r.Cod_Area;
V_EsElPrimero := -1; --Para que no entre mas a este if.
End If;
/*El quiebre lo logras a continuacion.*/
If v_Actual != r.Cod_Area Then
/*Lo que quieras en el quiebre*/
v_Actual := r.Cod_Area; --Con esto actualizas para que la prixima vez no entre sino hasta el cambio.
End If;
End Loop;

Ojala te sirva, quedo a tus ordenes.

RE:Cursores en oracle

Publicado por tuozzo (66 intervenciones) el 27/01/2006 21:57:23
Yo te recomiendo que hagas dos cursores y los anides, de esa manera te puedes traer los maestros en el cursor externo y los detalles en el cursor interno.

RE:Cursores en oracle

Publicado por legolas (1 intervención) el 18/01/2007 20:26:28
cursor c_areas is
select cod_area, cod_trab from t_movimientos

Al recorrerlo:

for r in c_areas loop

Acá quiero realizar un quiebre por cod_area

exit when cod_area = parametro_de_salida


end loop ;