Re: Ayuda en consulta complicada

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com>
Cc: PostgreSQL-foro <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda en consulta complicada
Date: 2006-01-20 17:05:27
Message-ID: c2d9e70e0601200905k22d7c989n6ef534fd5c9d8201@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/20/06, Luis Guevara <luis(dot)a(dot)guevara(at)gmail(dot)com> wrote:
> Gracias Jaime:
>
> Ya compilé. pero al llamar a la función con
>
> select * from test(2)
>
> me devuelve el siguiente error:
>
> ERROR: wrong record type supplied in RETURN NEXT
> CONTEXT: PL/pgSQL function "test" line 12 at return next
>
> Al parecer hay un error con el tipo de dato que devuelve RECORD, porque no
> va a devolver un solo registro sino varios registros.
>
> La función ha quedado compilada así:
>
> CREATE OR REPLACE FUNCTION "public"."test" (integer) RETURNS SETOF
> "public"."dependencia" AS
> $body$
> declare
> foo record;
> begin
> select into foo depe_id, depe_nombre, depe_depeid
> from dependencia
> where depe_id = $1;
>
>
> if not found then
> return;
> end if;
>
> return next foo;
>
> if foo.depe_depeid is not null then
> for foo in select depe_id, depe_nombre, depe_depeid
> from test(foo.depe_depeid) loop
> return next foo;
> end loop;
> end if;
>
> return;
> end
> $body$
> LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
>
> ¿Cómo podría arreglar esto?
>
> Gracias por su apoyo.
>
>

a mi si me funciona...
seguro que los campos de tu tabla son depe_id, depe_nombre, depe_depeid

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

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Luis Guevara 2006-01-20 17:24:58 Re: Ayuda en consulta complicada
Previous Message Luis Guevara 2006-01-20 16:38:20 Re: Ayuda en consulta complicada