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

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
Thread:
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

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2005-11-30 17:53:19 Re: a column definition list is required for functions returning "record"
Previous Message AUGUSTO ESTEBAN 2005-11-30 17:37:27 a column definition list is required for functions returning "record"