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)
--
TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
http://archives.postgresql.org/pgsql-es-ayuda