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.