PL/SQL y DEVELOPER
Tengo un bloque de datos 'vnn_detalle', que no está vinculado a ninguna tabla. Los datos que quiero meter en este bloque provienen de una consulta que se ejecuta anteriormente en un disparador.
Los datos los voy recuperando así:
begin
open mi_detalle;
LOOP
fetch mi_detalle INTO :vnn_detalle.cdbanco, :vnn_detalle.cdsucur, :vnn_detalle.cdcuenta, :vnn_detalle.cg,
:vnn_detalle.wc, :vnn_detalle.dc, :vnn_detalle.dp, :vnn_detalle.mc, :vnn_detalle.mp,
:vnn_detalle.tg;
EXIT WHEN mi_detalle%NOTFOUND;
END LOOP;
close mi_detalle;
pero resulta que en pantalla solo me aparece el ultimo registro recuperado y no los anteriores. ¿Cómo puedo hacer que me aparezcan todos? GRACIAS
Los datos los voy recuperando así:
begin
open mi_detalle;
LOOP
fetch mi_detalle INTO :vnn_detalle.cdbanco, :vnn_detalle.cdsucur, :vnn_detalle.cdcuenta, :vnn_detalle.cg,
:vnn_detalle.wc, :vnn_detalle.dc, :vnn_detalle.dp, :vnn_detalle.mc, :vnn_detalle.mp,
:vnn_detalle.tg;
EXIT WHEN mi_detalle%NOTFOUND;
END LOOP;
close mi_detalle;
pero resulta que en pantalla solo me aparece el ultimo registro recuperado y no los anteriores. ¿Cómo puedo hacer que me aparezcan todos? GRACIAS
Antes de cargar el valor del fetch debes crear un registro, creo que la instruccion es create_record.
Este mismo problema lo tuvimos en mi trabajo, éste consiste en que se sobreescribe el primer registro una y otra vez. La solución es colocar 'next_record;' cada vez que se hace un fetch dentro del bucle, de esta forma se pasa al siguiente casillero y se rellena:
first_record;
loop
fetch ...
next_record;--avanza al siguiente
...
end loop
fisrt_record; --se coloca en el primer registro
¿HA QUEDADO CLARO?
first_record;
loop
fetch ...
next_record;--avanza al siguiente
...
end loop
fisrt_record; --se coloca en el primer registro
¿HA QUEDADO CLARO?
