Lists: | pgsql-es-ayuda |
---|
From: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
---|---|
To: | Esteban Osorio <eosorio(at)economia(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Consultas varias |
Date: | 2004-12-16 15:05:42 |
Message-ID: | 20041216150542.GD11577@dcc.uchile.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On Thu, Dec 16, 2004 at 12:03:30PM -0400, Esteban Osorio wrote:
Hola,
> CREATE FUNCTION public.busca_depcia() RETURNS refcursor AS '
> DECLARE
> cursor1 CURSOR FOR SELECT id_depcia, descripcion FROM dependencia order by
> descripcion;
> BEGIN
> OPEN cursor1;
> RETURN (cursor1);
> END;
> ' LANGUAGE 'plpgsql' VOLATILE;
Ugh ... ese truco del refcursor esta obsoleto desde Postgres 7.3. Mejor
algo como
CREATE FUNCTION public.busca_depcia() RETURNS setof record AS '
DECLARE
rec record;
begin
FOR SELECT into rec id_depcia, descripcion FROM dependencia order by descripcion loop
return next rec;
end loop;
return;
END;
' LANGUAGE 'plpgsql' VOLATILE;
Luego lo invocas como
select public.busca_depcia() as foo (a int, b text);
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Essentially, you're proposing Kevlar shoes as a solution for the problem
that you want to walk around carrying a loaded gun aimed at your foot.
(Tom Lane)
From: | Esteban Osorio <eosorio(at)economia(dot)cl> |
---|---|
To: | Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | RE: Consultas varias |
Date: | 2004-12-16 16:03:30 |
Message-ID: | 50FBA0B402D8D6118EEC0080C8F8BA33022D838F@KEYNES |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Para poner un ejemplo sencillo veamos esta declaración:
CREATE FUNCTION public.busca_depcia() RETURNS refcursor AS '
DECLARE
cursor1 CURSOR FOR SELECT id_depcia, descripcion FROM dependencia order by
descripcion;
BEGIN
OPEN cursor1;
RETURN (cursor1);
END;
' LANGUAGE 'plpgsql' VOLATILE;
¿Como hacer para obtener desde php cada una de las filas del resultado de
esta consulta?
Saludos,
Esteban.
-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)dcc(dot)uchile(dot)cl]
Enviado el: Jueves, 16 de Diciembre de 2004 10:56
Para: Esteban Osorio
CC: Juanky Moral; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Consultas varias
On Thu, Dec 16, 2004 at 11:10:38AM -0400, Esteban Osorio wrote:
Hola,
> Respecto de la consulta y respuesta anteriores me gustaría saber si
alguien
> me pudiese aclarar la siguiente duda: al realizar consultas complejas en
el
> lado del servidor usando funciones plpgsql que retornen varias filas ¿cómo
> puedo acceder desde php a éstas?, he intentado hacerlo de la manera
> tradicional en que se acceden consultas select pero no me ha funcionando.
Hum, como has tratado y no te ha funcionado? Porque ciertamente se
puede.
Supongo que podriamos partir viendo las declaraciones de las
funciones ...
--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"No reniegues de lo que alguna vez creíste"