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