esta si funciona. Y si, efectivamente usa el return next por cada tupla de
la tabla.
Muchas gracias

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


El 27 de febrero de 2013 17:28, marcelo mendoza
<[email protected]>escribió:

> Alguien mas podría probar la dirección? ya que a mí me funciona la misma,
> de nuevo la pongo aquí
>
> http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions
>
> Saludos
>
>
> El 27 de febrero de 2013 17:24, Guillermo E. Villanueva <
> [email protected]> escribió:
>
> Marcelo, no me funcionó la url, da error
>>
>> Guillermo Villanueva
>>  <http://ar.linkedin.com/in/guillermovillanueva>
>>
>>
>> El 27 de febrero de 2013 17:13, marcelo mendoza <
>> [email protected]> escribió:
>>
>> No se si esto te podría ayudar
>>>
>>> http://wiki.postgresql.org/wiki/Return_more_than_one_row_of_data_from_PL/pgSQL_functions
>>>
>>> El 27 de febrero de 2013 16:59, Guillermo E. Villanueva <
>>> [email protected]> escribió:
>>>
>>> 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
>>>>
>>>>
>>>
>>>
>>> --
>>> Marcelo Mendoza
>>> (0983) 383-752
>>>
>>
>>
>
>
> --
> Marcelo Mendoza
> (0983) 383-752
>

Responder a