From: | Hellmuth Vargas <hivs77(at)gmail(dot)com> |
---|---|
To: | Pedro PG <pedroPG(at)outlook(dot)com> |
Cc: | "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Usar parametro de FUNCTION como condicion en WHERE |
Date: | 2016-05-24 18:23:57 |
Message-ID: | CAN3Qy4p0P2HTs+Xomu7_vAK5dv6VSiUVULsrLcZLAq4BwEgUzg@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Buenas tardes Pedro
CREATE OR REPLACE FUNCTION fn_busca_almacen_por_criterio(in_criterio
character varying DEFAULT ''::character varying, in_valor character varying
DEFAULT ''::character varying)
RETURNS SETOF vw__almacen AS
$BODY$
DECLARE in_criterio alias FOR $1;
in_valor alias FOR $2;
DECLARE lr_ret RECORD;
t_consulta TEXT:=$$SELECT * FROM vw__almacen WHERE $$ || in_criterio
|| $$ LIKE '%$$ || in_valor || $$%'$$;
BEGIN
FOR lr_ret IN EXECUTE t_consulta LOOP
RETURN NEXT lr_ret;
END LOOP;
END;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
ROWS 1000;
2016-05-24 12:45 GMT-05:00 Pedro PG <pedroPG(at)outlook(dot)com>:
> Hola lista, requiero de su ayuda, pues verán, en la siguiente función
> necesito que el primer parametro IN in_criterio represente a la columna en
> donde se buscara y el segundo parametro IN in_valor represente el valor a
> buscar, ¿como es que puedo hacerlo?. He intentado lo siguiente pero no
> funciona, ¿alguna sugerencia?
>
>
> CREATE OR REPLACE FUNCTION fn_busca_almacen_por_criterio(in_criterio
> character varying DEFAULT ''::character varying, in_valor character varying
> DEFAULT ''::character varying)
> RETURNS SETOF vw__almacen AS
> $BODY$
> DECLARE in_criterio alias FOR $1;
> in_valor alias FOR $2;
>
> DECLARE lr_ret RECORD;
> BEGIN
> FOR lr_ret IN
> SELECT *
> FROM vw__almacen
> WHERE in_criterio LIKE CONCAT('%',in_valor,'%')
> LOOP
> RETURN NEXT lr_ret;
> END LOOP;
> END;$BODY$
> LANGUAGE plpgsql VOLATILE
> COST 100
> ROWS 1000;
>
> Gracias desde ya.
>
> Saludos.
>
--
Cordialmente,
Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate
From | Date | Subject | |
---|---|---|---|
Next Message | Jorge Tornero - Listas | 2016-05-27 11:48:42 | Copiar funciones entre bases de datos |
Previous Message | Pedro PG | 2016-05-24 17:45:38 | Usar parametro de FUNCTION como condicion en WHERE |