CREATE OR REPLACE FUNCTION QUITAR_ACENTOS (entrada VARCHAR2) RETURN VARCHAR2 IS salida VARCHAR2(4000); BEGIN salida := translate(upper(entrada),'ÁÀÂÄÉÈÊËÍÌÎÏÓÒÔÖÚÙÛÜÑÇ', 'AAAAEEEEIIIIOOOOUUUUNC'); RETURN(salida); END QUITAR_ACENTOS;
Ejemplo de uso:
SELECT * FROM TABLA T WHERE QUITAR_ACENTOS(T.CAMPO) LIKE '%'||QUITAR_ACENTOS(cadena_busqueda)||'%'
Versión 2.0
En esta versión utilizamos también la función regexp_replace. Lo cual nos permite indicar una expresión regular, en este caso para indicarle que sustituya los caracteres extraños por el caracter vacío y omitirlos en la búsqueda.
... salida := regexp_replace(translate(upper(entrada),'ÁÀÂÄÉÈÊËÍÌÎÏÓÒÔÖÚÙÛÜÑÇ', 'AAAAEEEEIIIIOOOOUUUUNC'), '[^A-Za-z0-9]', ''); ...
No hay comentarios:
Publicar un comentario