Hacer ILIKE '%$1%' en función

From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Hacer ILIKE '%$1%' en función
Date: 2006-03-25 00:52:47
Message-ID: 20060325004105.M66194@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos. Perdón si ya se respondió ésto, pero busqué y no encontré la
solución.

En una función recibo como parámetro un "varchar" que puede ser un una porción
de un apellido o un nombre que quiero identificar. La función es la siguiente:

CREATE OR REPLACE FUNCTION "selectDocenteBuscado"(varchar) RETURNS SETOF
persona AS $$
SELECT p.*
FROM persona p, "personaGrupo" pg, grupo g
WHERE g.nombre = 'Docentes'
AND g.id = pg.grupo_id
AND pg.persona_id = p.id
AND (p.apellido ILIKE '%$1%' OR p.nombre ILIKE '%$1%')
ORDER BY p.apellido
$$ LANGUAGE sql IMMUTABLE SECURITY DEFINER;

El problema es que nunca encuentra resultado (dá todos los campos de "persona"
y después dice "(0 rows)". La consulta está bien hecha, porque escribiéndola
en una consola sql con la cadena si me trae los resultados esperados, pero
mandándole esa cadena por parámetro a la función, no me devuelve nada. ¿Qué
podrá ser?, ¿puede ser que tenga que escapar de alguna forma el $1?. Intenté
con "%\$1%" y si bien no me dá error, tampoco funciona. :(

Saludos a todos y buen fin de semana.
-
-------------------------------------------
Sebastián Villalba
sebastian(at)fcm(dot)unc(dot)edu(dot)ar
-------------------------------------------

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Martínez 2006-03-25 01:21:17 Re: Uso de Reglas
Previous Message Roberto Andrade Fonseca 2006-03-25 00:05:44 Re: USO de BETWEEN !]