Archivo por días: 9 octubre, 2013

Consulta usando like y que no diferencie mayúsculas de minúsculas

El “problemilla” que se plantea es el siguiente …

En una base de datos, en un campo en concreto, puede aparecer un texto en mayúsculas, y el mismo texto también en minúsculas. Debía encontrar la manera de hacer una consulta con la cláusula LIKE, y que me encontrase el texto, tanto en mayúsculas como en minúsculas.  Pero realizando la consulta con like sin antes pasarlo a mayúsculas o a minúsculas, Oracle sólo encuentra el texto tal y como lo escribes. Por tanto, lo que se quiere es que si se escribe un texto que lo encuentre tanto si está escrito de una forma como de otra.

Solución:
Pasar a mayúsculas el campo y también la cadena que buscamos dentro del LIKE. De manera que la búsqueda se hará siempre en mayúsculas, y por lo tanto, encontrará el texto esté guardado en mayúsculas o minúsculas e independientemente de que quien busque a su vez lo teclee en minúsculas.

Ejemplo

accept cadena varchar2(150);

SELECT * from TABLA_EJ
WHERE UPPER(campo) LIKE UPPER('%&cadena%');

Donde campo es el campo texto donde vamos a buscar la cadena y &cadena la cadena de caracteres en concreto que queremos buscar.

Muy fácil pero hay que tenerlo en cuenta.