From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Ana Smail <anasmail(at)unnoba(dot)edu(dot)ar> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Consulta en 8.2 que no anda en 8.3 |
Date: | 2008-09-15 14:58:27 |
Message-ID: | 20080915145827.GD3798@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Ana Smail escribió:
> Tengo un query que hace en el where:
> AND s.sucursal ILIKE '%4%'
> En 8.2 funciona y en 8.3 dá el error:
> 7 ERROR: el operador no existe: integer ~~* unknown LINE 22:
> AND s.sucursal ILIKE "%4%" ORDER BY b.nombre, c.cuenta... ^ HINT: Ningún
> operador coincide con el nombre y el tipo de los argumentos. Puede desear
> agregar conversiones explícitas de tipos.
Prueba asi:
AND s.sucursal::text ILIKE '%4%'
(Surge la pregunta: ¿tiene sentido hacer una comparacion LIKE para
buscar un número?)
> Encontré hace un tiempo un script para agregar el casteo ímplícito, pero no
> tiene nada del like. Necesito solucionar esto desde el motor, porque no
> puedo tocar la aplicación, alguno de Uds. sabe cómo?
¿Que no puedes tocar la aplicaciÓn?? Supongo que se puede modificar los
catalogos de manera que el cast a text desde integer sea implicito, pero
no es para nada recomendable.
> Tampoco funciona: ORDER by upper(2)
Obviamente esto no funciona ... ¿cuál sería la mayúscula del número 2?
Esto debería "funcionar":
ORDER by upper('2')
--
Alvaro Herrera http://www.flickr.com/photos/alvherre/
One man's impedance mismatch is another man's layer of abstraction.
(Lincoln Yeoh)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-09-15 15:01:31 | Re: Consulta |
Previous Message | Alfredo Guzmán | 2008-09-15 14:56:32 | RE: Consulta |