Cuando se esta realizando un recorrido sobre un cursor en PL/SQL un metodo practico de realizarlo es a traves de LOOP ... END LOOP. Para el caso de la variable que contendra el registro activo, esta se define en la creacion del ciclo y para utilizar los datos se maneja variable.dato (ej. c.nombre)
FOR d IN c_descuentos LOOP
--El cursor que vamos a recorrer es C_DESCUENTOS
--El registro activo esta en la variable d
insert into hist_descuentos(codigo,fecha_inicio,fecha_fin)
values(d.cod,d.fini,d.ffin);
END LOOP; -- Descuentos
los LOOP se pueden usar anidados siempre tomando en cuenta el scope de cada cursor, para que no les de un problema de acceso a datos o un comportamiento inesperado.
La referencia en ingles esta aca
No hay comentarios:
Publicar un comentario