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 <mas...@gmail.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
>
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a