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 >> >> >
