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 >
