Skip site navigation (1) Skip section navigation (2)

consulta sobre uso like en procedimientos almacenados

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 (view raw or flat)
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

Responses

pgsql-es-ayuda by date

Next:From: Debora VertDate: 2008-02-26 14:08:23
Subject: BackUp y Restore
Previous:From: Sergio Valdes HurtadoDate: 2008-02-26 13:33:20
Subject: Re: Error en instalación de 8.3

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group