El 10 de junio de 2009 13:33, Ismael Diaz<ismael....@gmail.com> escribió: > El 10 de junio de 2009 12:25, Emanuel Calvo > Franco<postgres....@gmail.com> escribió: > [...] >> No te sirve hacer un RETURN QUERY? >> >> En este caso inclusive podés hacer una función en 'sql' a la >> que si queres podés pasarle parámetros... >> >> Prefiero la segunda, es más sencilla... >> > [...] > > Me puedes dar algun ejemplo concreto de lo que planteas ?, idealmente > en base a la funcion de ejemplo propuesta. > > > Saludos > -- > Ismael Diaz. > -- > TIP 7: no olvides aumentar la configuración del "free space map" >
CREATE TYPE ehy AS(m text,f text); -- o CREATE VIEW porqueria AS SELECT m.nombre as campo1, f.nombre as campo2 FROM mitablita m LEFT JOIN mitablita f ON m.nombre = f.nombre; CREATE OR REPLACE FUNCTION get_row2() RETURNS SETOF porqueria AS $BODY$ BEGIN RETURN QUERY SELECT m.nombre, f.nombre FROM mitablita m LEFT JOIN mitablita f ON m.nombre = f.nombre; END $BODY$ LANGUAGE 'plpgsql'; CREATE OR REPLACE FUNCTION get_row() RETURNS ehy AS $BODY$ SELECT m.nombre, f.nombre FROM mitablita m LEFT JOIN mitablita f ON m.nombre = f.nombre $BODY$ LANGUAGE SQL; Tené en cuenta que este ejemplo es burdo (estoy joineando una misma tabla y retornando el mismo campo). Fijate que o podés crear una vista o un type (es mejor un type pero para los fines sirve, el tema es que esté definido lo que retorna) -- Emanuel Calvo Franco ArPUG [www.arpug.com.ar] / AOSUG Member www.emanuelcalvofranco.com.ar -- TIP 4: No hagas 'kill -9' a postmaster