March 9, 2023
[ORACLE] - Função para remover acentos
Recentemente eu precisei tratar vários dados antes de enviar para uma API, uma dessas trativas era enviar o resultado de uma query sem acentuações. Sendo assim, criei uma função que recebe uma string para poder remover os caracteres especiais, veja como é fácil!
create or replace FUNCTION FUN_CVT_REMOVE_ACENTO (P_TEXTO IN VARCHAR2) RETURN VARCHAR2 AS V_TEXTO_CONVERTIDO VARCHAR(400) := ''; BEGIN SELECT TRANSLATE(UPPER(P_TEXTO), 'ŠŽšžŸÃÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáÇçéíóúàèìòùâêîôûãõëüïöñýÿ<>', 'SZszYAACEIOUAEIOUAEIOUAOEUIONYaacceiouaeiouaeiouaoeuionyy') INTO V_TEXTO_CONVERTIDO FROM DUAL; RETURN V_TEXTO_CONVERTIDO; END FUN_CVT_REMOVE_ACENTO;
No exemplo acima a função TRANSLATE já faz todo o trabalho de substituir um caractere por outro.