Re: like no funciona

From: suso <jlcubas(at)terra(dot)es>
To: PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: like no funciona
Date: 2009-11-28 17:54:19
Message-ID: 4B1163CB.2060900@terra.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Cesar, probé tu función, que aunque devuelve todos los registros
coincidentes, no la cantidad exclusivamente de registros que puede
haber, mi "necesidad" de devolver cantiddad, es pq no sé cuántos
registros puede traer esa consulta(puede tener 1000 o 2000, para carga
de red no sé si s demasiado, debdio a eso, no me gustaría que trajera
más de 500), pq sabiendo la cantidad, si es mayor de 500, me traigo sólo
los 500, y los demás para una futura consulta (si es que es necesario).
No sé si me explico.
Aún así, adapté la consulta de like según me pasaste en el ejemplo, pero
me sigue trayendo 0, es decir, a mí no me funciona, lo dicho, soy gafe:(
No sé si lo estoy haciendo mal, o no se puede lo que yo necesito.
select COUNT(*) INTO devuel from pacientes where apell LIKE
UPPER('|| quote_literal($1) ||');
Me deveulve 0
Muchas gracias
Un saludo
Suso
> mira yo tengo esta funcion en postgres
>
> -- Function: cl_cargo_buscar(integer, character varying, integer, integer)
>
> -- DROP FUNCTION cl_cargo_buscar(integer, character varying, integer,
> integer);
>
> CREATE OR REPLACE FUNCTION cl_cargo_buscar(m_tipo integer, m_dato
> character varying, m_codigo integer, m_clinica integer)
> RETURNS SETOF cargo AS
> $BODY$
> DECLARE
> fila cargo%rowtype;
> sql character varying;
> m character varying;
> BEGIN
> --1:BUSCAR TODOS LOS REGISTROS
> IF m_tipo= 1 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND c.cl_cod='|| m_clinica || ' ORDER BY cg_cod ';
> END IF;
> --2:BUSCAR REGISTROS DE ACUERDO AL NOMBRE O PARTE DE EL
> IF m_tipo = 2 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND cg_nombre like UPPER('|| quote_literal($2) ||') ' || '
> AND c.cl_cod='|| m_clinica ;
> END IF;
> --3:BUSCAR REGISTROS DE ACUERDO AL CODIGO
> IF m_tipo=3 THEN
> sql = 'SELECT * FROM cargo c, clinica cl
> WHERE c.cl_cod=cl.cl_cod
> AND c.cl_cod='|| m_clinica || '
> AND cg_cod ='|| m_codigo;
> END IF;
>
> FOR fila IN EXECUTE sql
> LOOP
> RETURN NEXT fila;
> END LOOP;
> RETURN;
> END;
> $BODY$
> LANGUAGE 'plpgsql' VOLATILE
> COST 100
> ROWS 1000;
> ALTER FUNCTION cl_cargo_buscar(integer, character varying, integer,
> integer) OWNER TO postgres;
>
> y la llamo de la siguiente forma en visual basic
>
> select * from cl_cargo_buscar(2,'p%',0,1)
>
> me devuelve
>
>
>
> --
> Sin más que decir se despide de Usted, muy atentamente
>
> Cesar Erices Vergara
> Ingeniero en Gestión Informática
> Analista de Sistema
>
> Santiago - Chile

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Emanuel Calvo Franco 2009-11-28 17:54:40 Re: like no funciona
Previous Message Cesar Erices 2009-11-28 16:50:46 Re: like no funciona