Ok, podría forzar un for, pero no me gustaba mucho la idea.
Muchas gracias.

Guillermo Villanueva
<http://ar.linkedin.com/in/guillermovillanueva>


El 27 de febrero de 2013 17:19, Juan <[email protected]>escribió:

> 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