Re: a column definition list is required for functions returning "record"

Lists: pgsql-es-ayuda
From: "AUGUSTO ESTEBAN" <augustin_hm(at)yahoo(dot)es>
To: "Postgresql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: a column definition list is required for functions returning "record"
Date: 2005-11-30 17:37:27
Message-ID: 20051130174406.60AF29DCB7B@postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda


> Saludos, esto asumo que debe ser pichanga para ud.
> bien soy casi nuevo en esto de plpgsql y tengo el siguiente codigo y
quiero que me devuelva esa simple consulta(que porsupuesto lo puedo hacer en
una vist ano ma, pero no se trrata de eso) y me devuelve el siguiente error,
no me imagino porque, porfavor si alguien me pudiese ayuduar, se lo
agradeceria.
> ----------------------------------------------------------------------
> -------- ERROR : a column definition list is required for functions
> returning "record"
> ----------------------------------------------------------------------
> -------- CREATE OR REPLACE FUNCTION f_a_prrueba3()
> RETURNS SETOF record AS
> $BODY$
> declare
> resultado record;
> begin
> for resultado in
> select * from nota
> loop
> return next resultado;
> end loop;
> return;
> end;$BODY$
> LANGUAGE 'plpgsql' VOLATILE;
> ----------------------------------------------------------------------
> --------
> select * from f_a_prrueba3();
> ----------------------------------------------------------------------
> --------
>
> atte
>
> AUGUSTO ESTEBAN HUMIRE MARTINEZ


______________________________________________
Renovamos el Correo Yahoo!
Nuevos servicios, más seguridad
http://correo.yahoo.es


From: Raul Caso <feve18(at)gmail(dot)com>
To: augustin_hm(at)yahoo(dot)es, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: a column definition list is required for functions returning "record"
Date: 2005-11-30 17:53:16
Message-ID: 4dda42060511300953pf3e22d9p@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El día 30/11/05, AUGUSTO ESTEBAN <augustin_hm(at)yahoo(dot)es> escribió:
>
>
> > Saludos, esto asumo que debe ser pichanga para ud.
> > bien soy casi nuevo en esto de plpgsql y tengo el siguiente codigo y
> quiero que me devuelva esa simple consulta(que porsupuesto lo puedo hacer
> en
> una vist ano ma, pero no se trrata de eso) y me devuelve el siguiente
> error,
> no me imagino porque, porfavor si alguien me pudiese ayuduar, se lo
> agradeceria.
> > ----------------------------------------------------------------------
> > -------- ERROR : a column definition list is required for functions
> > returning "record"
> > ----------------------------------------------------------------------
> > -------- CREATE OR REPLACE FUNCTION f_a_prrueba3()
> > RETURNS SETOF record AS
> > $BODY$
> > declare
> > resultado record;
> > begin
> > for resultado in
> > select * from nota
> > loop
> > return next resultado;
> > end loop;
> > return;
> > end;$BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> > ----------------------------------------------------------------------
> > --------
> > select * from f_a_prrueba3();
> > ----------------------------------------------------------------------
> > --------
> >
> > atte
> >
> > AUGUSTO ESTEBAN HUMIRE MARTINEZ
>
>
> Hola esto respondieron a una duda mia:

a ver,lo que puedes hacer es definir un type con la estructura que queres
que te devuelva tu funcion

create type regsalida (deptid int, deptname text); --algo asi es la
sintaxis

y declara la función como

create or replace function GetRows(text) returns setof regsalida as
..
..
..
end
y despues la llamas select * from GetRows('Department');

Pero al ver tu funcion veo que devuelves un select * from osea toda la tabla
y si es asi te recomiendo que cambias el tipo devuelto de tu funcion a el
tipo de la tabla que haces el select RETURNS SETOF record AS cambialo a
setof nota(o como se llame tu tabla)
y en
declare resultado record; cambialo por
declare resultado nota%rowtype;
y debe funcionar

--
Raulinho
97033825-4327239


From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: augustin_hm(at)yahoo(dot)es
Cc: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: a column definition list is required for functions returning "record"
Date: 2005-11-30 17:53:19
Message-ID: c2d9e70e0511300953q78c566a3md4d043e9e0628bb9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On 11/30/05, AUGUSTO ESTEBAN <augustin_hm(at)yahoo(dot)es> wrote:
>
> > Saludos, esto asumo que debe ser pichanga para ud.
> > bien soy casi nuevo en esto de plpgsql y tengo el siguiente codigo y
> quiero que me devuelva esa simple consulta(que porsupuesto lo puedo hacer en
> una vist ano ma, pero no se trrata de eso) y me devuelve el siguiente error,
> no me imagino porque, porfavor si alguien me pudiese ayuduar, se lo
> agradeceria.
> > ----------------------------------------------------------------------
> > -------- ERROR : a column definition list is required for functions
> > returning "record"
> > ----------------------------------------------------------------------
> > -------- CREATE OR REPLACE FUNCTION f_a_prrueba3()
> > RETURNS SETOF record AS
> > $BODY$
> > declare
> > resultado record;
> > begin
> > for resultado in
> > select * from nota
> > loop
> > return next resultado;
> > end loop;
> > return;
> > end;$BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> > ----------------------------------------------------------------------
> > --------
> > select * from f_a_prrueba3();

Para retornar un tipo record tienes que indicar la estructura cuando
llamas el select

select * from f_a_prrueba3() as (campo1 int, campo2 varchar(30), etc, etc);

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)


From: "Ing(dot) Jhon Carrillo // Caracas, Venezuela" <jhon(dot)carrillo(dot)foros(at)gmail(dot)com>
To: augustin_hm(at)yahoo(dot)es
Cc: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: a column definition list is required for functions returning "record"
Date: 2005-11-30 17:56:32
Message-ID: 84d933650511300956j49ca0563y@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

El 30/11/05, AUGUSTO ESTEBAN<augustin_hm(at)yahoo(dot)es> escribió:
>
> > Saludos, esto asumo que debe ser pichanga para ud.
> > bien soy casi nuevo en esto de plpgsql y tengo el siguiente codigo y
> quiero que me devuelva esa simple consulta(que porsupuesto lo puedo hacer en
> una vist ano ma, pero no se trrata de eso) y me devuelve el siguiente error,
> no me imagino porque, porfavor si alguien me pudiese ayuduar, se lo
> agradeceria.

hola, colocale en la definición en ves de RECORD --> NOTA, a ver que
pasa, es decir

"...RETURNS SETOF NOTA AS
$BODY$
declare
resultado NOTA;..."

suerte

Jhon Carrillo
DBA / Software Engineer
Caracas-Venezuela

> > ----------------------------------------------------------------------
> > -------- ERROR : a column definition list is required for functions
> > returning "record"
> > ----------------------------------------------------------------------
> > -------- CREATE OR REPLACE FUNCTION f_a_prrueba3()
> > RETURNS SETOF record AS
> > $BODY$
> > declare
> > resultado record;
> > begin
> > for resultado in
> > select * from nota
> > loop
> > return next resultado;
> > end loop;
> > return;
> > end;$BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> > ----------------------------------------------------------------------
> > --------
> > select * from f_a_prrueba3();
> > ----------------------------------------------------------------------
> > --------
> >
> > atte
> >
> > AUGUSTO ESTEBAN HUMIRE MARTINEZ
>
>
>
> ______________________________________________
> Renovamos el Correo Yahoo!
> Nuevos servicios, más seguridad
> http://correo.yahoo.es
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo
>

--