From: | Juan <smalltalker(dot)marcelo(at)gmail(dot)com> |
---|---|
To: | "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: RETURNS TABLE |
Date: | 2013-02-27 20:19:03 |
Message-ID: | CAKizN9yFCcfaiTusq8NwZ-NVHYWZKFB2rpxbtCtQMV+rSmX1=g@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
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 <guillermovil(at)gmail(dot)com>
> 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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo E. Villanueva | 2013-02-27 20:21:52 | Re: RETURNS TABLE |
Previous Message | marcelo mendoza | 2013-02-27 20:13:35 | Re: RETURNS TABLE |