PL/SQL y DEVELOPER

Oscar Navarro
24 de Agosto del 2002
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

marccis
24 de Agosto del 2002
Antes de cargar el valor del fetch debes crear un registro, creo que la instruccion es create_record.

jceular
24 de Agosto del 2002
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?