El 10 de junio de 2009 13:33, Ismael Diaz<[email protected]> escribió:
> El 10 de junio de 2009 12:25, Emanuel Calvo
> Franco<[email protected]> 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