Re: Ayuda con Function Sql

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)

In response to

Responses

Browse pgsql-es-ayuda by date

  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