From: | "Fernando Hevia" <fhevia(at)ip-tel(dot)com(dot)ar> |
---|---|
To: | "'Xavier Guerra'" <tomrero(at)gmail(dot)com>, 'ayuda de postgres en español' <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | RE: Duda con LIKE |
Date: | 2010-01-13 14:57:12 |
Message-ID: | 0480005D50354D158A551753C942442B@iptel.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> -----Mensaje original-----
> De: Xavier Guerra
>
> Hola en la version 8.1 y 8.2 no he probado en la 8.3, se
> podia utilizar LIKE con tipos de datos integer ahora en la
> 8.4.1 me da el siguiente error:
>
> ERROR: el operador no existe: integer ~~ unknown
>
Efectivamente el operador LIKE (internamente denotado como ~~) no está
definido para ser aplicado a un tipo entero.
> mi duda es la siguiente, esto era un bug de esas versiones de
> postgres o del SQL usado por esas versiones..?
Ocurre que en versiones anteriores Postgres hacía casts implícitos al tipo
de datos que necesitaba el operador. Ese comportamiento fue eliminado a
partir de 8.3 y ahora debes hacer los casts explícitamente si ese es el
comportamiento deseado.
>
> la consulta que hago es la siguiente
>
> SELECT campo_integer
> FROM tabla
> WHERE campo_integer LIKE '%'
>
> repito esto en la version 8.1 y 8.2 me funciona en la 8.3 no
> he probado pero en la 8.4.1 que instale compilando los
> fuentes me da el error.
Funcionaba por lo que mencioné arriba. A partir de 8.3 en adelante lo puedes
lograr cambiando la condición a la siguiente forma:
WHERE campo_integer::text LIKE '%'
Saludos,
Fernando.
From | Date | Subject | |
---|---|---|---|
Next Message | Fernando Hevia | 2010-01-13 15:22:17 | RE: RV: duda con funcion |
Previous Message | Rodrigo Ruiz Fuentes | 2010-01-13 14:32:20 | Re: Duda con LIKE |