Re: Ayuda con Function Sql

From: "Mario Soto" <msotocl(at)gmail(dot)com>
To: "Miguel Panuera" <mpanuera(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con Function Sql
Date: 2007-08-17 22:58:04
Message-ID: e9b17cde0708171558p39f2af76n52e17e6d675d04ef@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

3.- Tambien se puede hacer lo siguiente:

CREATE TYPE mi_tipo AS (
codigo INTEGER,
descripcion VARCHAR
);

CREATE OR REPLACE FUNCTION mi_funcion () RETURNS SETOF mi_tipo AS
$body$
select campo_1, campo_2
from mi_tabla
where
order by ;
$body$
LANGUAGE 'sql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER;

select * from mi_funcion();

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, ...);
>
> 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)
> --
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Miguel Panuera 2007-08-17 23:19:07 Re: Ayuda con Function Sql
Previous Message Alvaro Herrera 2007-08-17 22:07:28 Re: Ayuda con Function Sql