terça-feira, 10 de junho de 2014

Como retirar acentos de uma coluna - Função Translate [Oracle];

Bom dia a todos!

Ontem estava desenvolvendo uma Função para retirar os acentos de uma determinada Coluna, quando após algumas pesquisas descobri uma função super simples do próprio Oracle.

> Função Translate

Select TRANSLATE ('Testando a Função Translate - Retira Acentuação',
                  'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ',
                  'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy') 
                  As TRANSLATE FROM DUAL; 








Analisando a Função, de certa forma ela é parecida com o Replace, porém a diferença é que no Replace não seria possível fazer a substituição da letra acentuada por a letra sem acento em um único argumento.

Foi aí que utilizei a função no meu UPDATE !
Bom... Primeiro vamos visualizar a Tabela - A coluna Descrição com palavras acentuadas.















UPDATE  TB_PALAVRAS_ACENTUADAS
SET DESCRICAO = TRANSLATE (''||DESCRICAO||'',
                    'ŠŽšžŸÁÇÉÍÓÚÀÈÌÒÙÂÊÎÔÛÃÕËÜÏÖÑÝåáçéíóúàèìòùâêîôûãõëüïöñýÿ',
                    'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy');









Após o UPDATE, todas as palavras acentuadas tiveram o seu acento removido/substituído.


Abraços,
Bruno Duarte.

3 comentários: