Guillermo

Hasta donde se el return next ; es dentro de un for... loop que en tu code
no se ve.
Ademas es return next var;
donde var es la variable que venis recorriendo en el loop.
si realmente tenes  un loop, arma un tipo (type)  con los campos (  que
necesites)  y que vos queres y devolver en cada
iteracion devolvelo.
si por ej se llama t , la variable seria algo asi.

declare t type;
...
beguin

for ...

t.campo1= alguncalculo;
t.campo2= otrocalculo ;

return next t
loop
..
end

salu2

jmdc

2013/2/27 Guillermo E. Villanueva <[email protected]>

> Amigos no puedo encontrar ni en la doc oficial ni en google algo muy
> simple, quiero declarar una función de tipo tabla que va a devolver 3 o 4
> datos nada mas en una tabla de una sola columna, esos datos provienen de
> unos cálculos
> Intenté algo así:
> CREATE OR REPLACE FUNCTION mifuncion(parametros) RETURNS table(columna
> integer) AS
> $BODY$
> declare
> li_retorno integer := -1;
> li_retorno_ext integer := -1;
> ...
> ...
>
> begin
> ...
>  ...
> columna := li_retorno;
>  return next;
> if li_retorno_ext <> -1 then
>  columna := li_retorno_ext;
> return next;
>  end if;
> end;
> $BODY$
> LANGUAGE plpgsql
>
> Cuando debería devolver dos filas, me devuelve uno solo, estoy seguro que
> esa no es la forma de ir armando fila por fila. Cual sería la forma? Una
> tabla temporal adentro de la función?
> Desde ya muchas gracias
>
> Guillermo Villanueva
>
>

Responder a