RE: Duda con LIKE

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.

In response to

Browse pgsql-es-ayuda by date

  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