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.