From: | "Cesar Erices" <caerices(at)gmail(dot)com> |
---|---|
To: | "foro postgresql" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | consulta sobre uso like en procedimientos almacenados |
Date: | 2008-02-26 14:02:11 |
Message-ID: | 1cb5d9840802260602x4856ececp88a3d83a49569b7a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Estimados necesito hacer una busqueda con la sentencia like o ilike en un
procedimiento almacenado
CREATE OR REPLACE FUNCTION "public"."Bancos_TraerBancoPorDescripcion"
("pg_catalog"."refcursor", var_descripcion varchar, criterio_busqueda
varchar) RETURNS "pg_catalog"."refcursor" AS
$body$
DECLARE
cursor_salida ALIAS FOR $1;
BEGIN
/* funciona !*/
IF criterio_busqueda = 'igual' THEN
Open cursor_salida For SELECT * FROM bancos WHERE
descripcion = var_descripcion;
RETURN cursor_salida;
END IF;
/* funciona !*/
IF criterio_busqueda = 'cualquier_parte' THEN
Open cursor_salida For SELECT * FROM bancos WHERE
lower(descripcion) ~ var_descripcion;
RETURN cursor_salida;
END IF;
/* NO Funciona !*/
IF criterio_busqueda = 'al_comienzo' THEN
Open cursor_salida For SELECT * FROM bancos WHERE
lower(descripcion) ~ "%" || $2;
RETURN cursor_salida;
END IF;
/*
IF criterio_busqueda = 'al_final' THEN
END IF;
*/
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
pero la busqueda por la coincidencia ya sea al inicio o alfinal de la
variable a buscar se cae indicando que
Funciona:
SELECT
"Bancos_TraerBancoPorDescripcion"('cursor_salida','bal','cualquier_parte');
fetch all in cursor_salida
NO Funciona:
SELECT
"Bancos_TraerBancoPorDescripcion"('cursor_salida','bal','al_comienzo');
fetch all in cursor_salida
Error;
*Warning*: pg_query()
[function.pg-query<http://localhost/vall_contabilidad/function.pg-query>]:
Query failed: ERROR: no existe la columna «%» LINE 1: SELECT * FROM bancos
WHERE lower(descripcion) ~ "%" || $1 ^ QUERY: SELECT * FROM bancos WHERE
lower(descripcion) ~ "%" || $1 CONTEXT: PL/pgSQL function
además me gustaria saber como puedo conocer el numero de campos de una
determinada tabla
desde ya muchas gracias...
--
Cesar Erices Vergara
Ingeniero en Gestión Informática
Analista de Sistema
From | Date | Subject | |
---|---|---|---|
Next Message | Debora Vert | 2008-02-26 14:08:23 | BackUp y Restore |
Previous Message | Sergio Valdes Hurtado | 2008-02-26 13:33:20 | Re: Error en instalación de 8.3 |