From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Miguel Panuera <mpanuera(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Ayuda con Function Sql |
Date: | 2007-08-17 22:07:28 |
Message-ID: | 20070817220728.GJ5967@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Miguel Panuera escribió:
> El día 17/08/07, Alvaro Herrera <alvherre(at)commandprompt(dot)com> escribió:
> >
> > Miguel Panuera escribió:
> > > Buenas tardes, quisiera saber como puedo retornar en una function una
> > > consulta.. estaba probando esto
> > > CREATE OR REPLACE FUNCTION f_movimientos()
> > > RETURNS record AS
> > > $BODY$
> > > select * from movimiento;
> > > $BODY$
> > > LANGUAGE 'sql' VOLATILE;
> > > pero el problema es q cuando lo ejecuto
> > > select f_movimientos(); -- me devuelve esto:
> > > "(4,10.00,S,Prueba,E,"2007-07-30 00:00:00",AC,,,,,,,1,1,)"
> >
> > prueba con
> > select * from f_movimientos();
>
> me bota esto :S :
>
> ERROR: se requiere una lista de definición de columnas para funciones que
> retornan «record»
> Estado SQL:42601
Por favor manda una copia en CC a la lista.
Tienes dos opciones:
1. entregarle la lista de definicion de columnas, como te lo pide. Esto
se hace asi:
select * from f_movimientos() as foo(a int, b numeric, ...);
donde la lista que le entregas es la misma que tiene el registro que te
devuelve (o sea, en este caso, la misma definicion que tiene la tabla
movimiento).
2. declarar la funcion de la siguiente forma:
CREATE OR REPLACE FUNCTION f_movimientos()
RETURNS movimiento AS
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
"El número de instalaciones de UNIX se ha elevado a 10,
y se espera que este número aumente" (UPM, 1972)
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Soto | 2007-08-17 22:58:04 | Re: Ayuda con Function Sql |
Previous Message | Miguel Panuera | 2007-08-17 22:01:09 | Re: Ayuda con Function Sql |