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

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

pgsql-es-ayuda by date

Next:From: Emanuel Calvo FrancoDate: 2009-11-28 17:54:40
Subject: Re: like no funciona
Previous:From: Cesar EricesDate: 2009-11-28 16:50:46
Subject: Re: like no funciona

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