Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Fernando HeviaDate: 2010-01-13 15:22:17
Subject: RE: RV: duda con funcion
Previous:From: Rodrigo Ruiz FuentesDate: 2010-01-13 14:32:20
Subject: Re: Duda con LIKE

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group