RE: Consultas varias

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:43:48
Message-ID: 50FBA0B402D8D6118EEC0080C8F8BA33022D83C8@KEYNES
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Alvaro:

En la instrucción de invocación a la función, ¿que significa la
parte "as foo (a int, b text)"?

Saludos y gracia,

Esteban.

-----Mensaje original-----
De: Alvaro Herrera [mailto:alvherre(at)dcc(dot)uchile(dot)cl]
Enviado el: Jueves, 16 de Diciembre de 2004 11:06
Para: Esteban Osorio
CC: pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] Consultas varias

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)

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Leonardo Amezquita 2004-12-16 16:54:15 Problemas Realizando consultas
Previous Message Roberto Cesar Najera 2004-12-16 16:42:12 instalacion en solaris