Re: Ayuda con Funcion

From: Agustin Ignacio Genoves <agustingenoves(at)gmail(dot)com>
To: Listas <masc68(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con Funcion
Date: 2009-10-27 15:57:34
Message-ID: d50beba10910270857m63473e11vfa9cfaf3133a5398@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Si, lo que pasa es que vos tenes que usar return registro, creo que
como lo tenes planteado no te va a retornar nada.
Lee lo siguiente:

http://www.postgresql.org/docs/8.4/static/plpgsql-control-structures.html

o fijate usando algo asi:

CREATE TABLE foo (fooid INT, foosubid INT, fooname TEXT);
INSERT INTO foo VALUES (1, 2, 'three');
INSERT INTO foo VALUES (4, 5, 'six');

CREATE OR REPLACE FUNCTION getAllFoo() RETURNS SETOF foo AS
$BODY$
DECLARE
r foo%rowtype;
BEGIN
FOR r IN SELECT * FROM foo
WHERE fooid > 0
LOOP
-- can do some processing here
RETURN NEXT r; -- return current row of SELECT
END LOOP;
RETURN;
END
$BODY$
LANGUAGE 'plpgsql' ;

El día 27 de octubre de 2009 12:47, Listas <masc68(at)gmail(dot)com> escribió:
> Estas en lo correcto y lo solicione así, pero no me arroja ningún resultado
> , debiendo hacerlo?????
>
> -----Mensaje original-----
> De: Agustin Ignacio Genoves [mailto:agustingenoves(at)gmail(dot)com]
> Enviado el: martes, 27 de octubre de 2009 12:43
> Para: Listas
> CC: pgsql-es-ayuda(at)postgresql(dot)org
> Asunto: Re: [pgsql-es-ayuda] Ayuda con Funcion
>
> Cuando haces
>
>  CONSULTA := 'SELECT a.id,a.opcion
>  FROM public.epropiedades_provincias a
>  WHERE a.id_estado =''SA'' and a.relacion = quote_literal(tipo)';
>
> le estas pasando una variable a un string creo tendrias que concatenarlo
>
> 2009/10/27 Listas <masc68(at)gmail(dot)com>:
>> Hola Lista, miren tengo la siguiente función:
>>
>>
>>
>> CREATE OR REPLACE FUNCTION "public"."get_provincias" (co_region integer,
> out
>> id smallint, out opcion varchar) RETURNS SETOF record AS
>>
>> DECLARE
>>
>>       CONSULTA varchar;
>>
>>       tipo  integer;
>>
>>
>>
>> BEGIN
>>
>>
>>
>> tipo = $1;
>>
>>
>>
>>  IF tipo = 0 THEN
>>
>>  CONSULTA := 'SELECT a.id,a.opcion
>>
>>  FROM public.epropiedades_provincias a
>>
>>  WHERE a.id_estado =''SA'' ';
>>
>>  EXECUTE CONSULTA;
>>
>>  END IF;
>>
>>
>>
>>  IF tipo <> 0 THEN
>>
>>  CONSULTA := 'SELECT a.id,a.opcion
>>
>>  FROM public.epropiedades_provincias a
>>
>>  WHERE a.id_estado =''SA'' and a.relacion = quote_literal(tipo)';
>>
>>   EXECUTE CONSULTA;
>>
>>  END IF;
>>
>>
>>
>>  return;
>>
>>  END;
>>
>> LANGUAGE 'plpgsql'
>>
>>
>>
>> VOLATILE CALLED ON NULL INPUT SECURITY INVOKER COST 100 ROWS 1000;
>>
>>
>>
>> Al ejecutarla me señala lo siguiente :
>>
>> ERROR:  column "tipo" does not exist
>>
>>
>>
>> Pero tipo es una variable in y está declarada…  Qué podrá ser
>>
>>
>>
>> Gracias de Antemano
>>
>>
>>
>> Mario
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> __________ Información de ESET NOD32 Antivirus, versión de la base de
> firmas
>> de virus 4545 (20091026) __________
>>
>> ESET NOD32 Antivirus ha comprobado este mensaje.
>>
>> http://www.eset.com
>>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas
> de virus 4545 (20091026) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>
> __________ Información de ESET NOD32 Antivirus, versión de la base de firmas
> de virus 4545 (20091026) __________
>
> ESET NOD32 Antivirus ha comprobado este mensaje.
>
> http://www.eset.com
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Eveling Velásquez 2009-10-27 16:22:53 Re: problema con max-pool-conecction
Previous Message Listas 2009-10-27 15:47:36 RE: Ayuda con Funcion