> Hola
> tengo una funcion que devuelve un RECORD, funciona pero esta
> incompleta porque necesito
> volver a procesar los registros y no puedo hacerlo, alguien tiene idea
> como puedo hacerlo?
> a continuacion muestro la funcion en cuestion:
>
> Gracias desde ya.
>
> declare rcursor1 RECORD;
>
> begin
> for rcursor1 in SELECT movimien.ccuen,movimien.cdeno,
> (CASE
> WHEN EXTRACT(MONTH FROM movimien.cfech)=1 THEN
> COALESCE(sum(movimien.cdebe-
> movimien.chabe),0)
> ELSE
> 0.00
> END) AS cmes01,
> (CASE
> WHEN EXTRACT(MONTH FROM movimien.cfech)=2 THEN
> COALESCE(sum(movimien.cdebe-
> movimien.chabe),0)
> ELSE
> 0.00
> END) AS cmes02,
> FROM movimien
> LEFT JOIN asientos on asientos.cnumtra=movimien.cnumtra
> WHERE movimien.cempre=pempre AND movimien.cperi=pperio
> AND movimien.ccuen>=pdecue AND movimien.ccuen<=phacue
> AND movimien.cmodo=2
> GROUP BY movimien.ccuen, movimien.cdeno, EXTRACT(MONTH
> FROM movimien.cfech)
> ORDER BY movimien.ccuen
> loop
>
al utilizar return next, ya estas devolviendo valores de la funcion, asi
que ya no podras usarlos mas abajo porque ya no existen dentro de la
funcion,
lo que te sugiero es procesar tus resultados antes de return next.
> return next rcursor1;
> end loop;
>
> ------------
> ACA DEBERIA VOLVER A PROCESAR EL RESULTADO
> -----------------
> return;
> end