From: | Lazáro Rubén García Martínez <lgarciam(at)vnz(dot)uci(dot)cu> |
---|---|
To: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Duda entre refcursor y record |
Date: | 2012-07-04 23:24:14 |
Message-ID: | 294D3D02D5E18D42827B2ECFEADEB688472A44BB4F@mx-interno.vnz.uci.cu |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos en la lista, necesito desarrollar un conjunto de funciones que serán ejecutadas desde PHP. Mi duda es la siguiente.
Para retornar un conjunto de datos, que debería ser más óptimo, utilizar un refcursor, o utilizar variables de salida (OUT) y retornar el resultado dentro de un For Loop?
Algo como esto:
Utilizando cursor:
CREATE OR REPLACE FUNCTION public.fun_listar_escuela (
)
RETURNS pg_catalog.refcursor AS
$body$
DECLARE
cursor_salida refcursor;
BEGIN
open cursor_salida FOR SELECT * FROM escuela;
RETURN cursor_salida;
END;
$body$
LANGUAGE 'plpgsql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100;
Utilizando record:
CREATE OR REPLACE FUNCTION public.fun_listar_escuela (
out id_escuela integer,
out nombre varchar,
out escuela_relacionada integer
)
RETURNS SETOF record AS
$body$
DECLARE
tmp record;
BEGIN
FOR tmp IN SELECT * FROM escuela
Loop
id_escuela = tmp.id_escuela;
nombre = tmp.nombre;
escuela_relacionada = tmp.escuela_relacionada;
RETURN NEXT;
END Loop;
RETURN;
END;
$body$
LANGUAGE 'plpgsql';
Atento a sus recomendaciones.
Saludos.
Fin a la injusticia, LIBERTAD AHORA A NUESTROS CINCO COMPATRIOTAS QUE SE ENCUENTRAN INJUSTAMENTE EN PRISIONES DE LOS EEUU!
http://www.antiterroristas.cu
http://justiciaparaloscinco.wordpress.com
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2012-07-05 04:01:59 | Re: Duda entre refcursor y record |
Previous Message | Fernando Siguenza | 2012-07-04 04:37:18 | RE: Instalar crosstab en postgresql 9.1 |