Re: Ayuda con Function Sql

From: "Miguel Panuera" <mpanuera(at)gmail(dot)com>
To: "Alvaro Herrera" <alvherre(at)alvh(dot)no-ip(dot)org>, PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con Function Sql
Date: 2007-08-17 23:19:07
Message-ID: f603e5000708171619k18abd9ddt579b058f44f65a23@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Probando.....

El día 17/08/07, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>
> 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, ...);

CREATE OR REPLACE FUNCTION f_movimientos()
RETURNS record AS
$BODY$
select moviid, movimonto from stmovimiento;
$BODY$
LANGUAGE 'sql' VOLATILE;

select * from f_movimientos() as foo(a int, b numeric);

Si funciona, pero solo me devuelve un registro :S

> 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

asi ?¿:
CREATE OR REPLACE FUNCTION f_movimientos()
RETURNS stmovimiento AS
$BODY$
select * from stmovimiento;
$BODY$
LANGUAGE 'sql' VOLATILE;

al hacer esto:
select * from f_movimientos()
solo me devuelve solo un registro :S
y al hacer esto:
select f_movimientos()
todo junto "(4,10.00,S,Prueba,E,"2007-07-30 00:00:00",AC,,,,,,,1,1,)"

Cabe resaltar la idea de que las consultas que quiero hacer no es solo a la
tabla stmovimientos
y eso si con campos ya defenidos

Gracias x la Ayuda...

--
> 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)
>

--
Miguel Panuera C.
STsoft Developer
mpanuera(at)gmail(dot)com
m(dot)panuera(at)stsoftperu(dot)com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Panuera 2007-08-17 23:33:11 Re: Ayuda con Function Sql
Previous Message Mario Soto 2007-08-17 22:58:04 Re: Ayuda con Function Sql