Translate

Removendo Acentos

Removendo Acentos (Função TRANSLATE)

Removendo Acentos (Função TRANSLATE)

Autor: Prof. Paulo Kaupa

 

Caso em seu dia a dia ocorra a necessidade de remover acentos de uma string ou de um valor inserido em um campo, pode-se usar a função TRANSLATE do PL/SQL .

A função TRANSLATE substitui uma sequencia de caracteres por outra. Neste artigo a função TRANSLATE será usada para substituir caracteres acentuados, mas pode ser usada em outras situações para substituir qualquer sequencia de caracteres.

                Sintaxe:

TRANSLATE

                (

PALAVRA_ou_CAMPO,

‘CARACTER A SER SUBSTITUIDO’,

 ‘CARACTER DE SUBSTITUIÇÃO’

);

Exemplo 1:

Aplicação da função TRANSLATE diretamente em palavras (strings).

SELECT

TRANSLATE (

'Ação, Macarrão, José',

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

                                                'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy')

FROM DUAL;

 

No Exemplo 1, as palavras 'Ação, Macarrão, José'  foram apresentadas sem os acentos.

 

 

Exemplo 2:

Aplicação da função TRANSLATE  em campos de uma tabela.

SELECT

  TRANSLATE(

CAMPO_DA_TABELA,

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

                                'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy')

FROM

TB_SUA_TABELA;

 

 

Na Prática (Atividade 1)

Nesta atividade será criada uma tabela com uma coluna que receberá palavras acentuadas. Em seguida a função TRANSLATE será usada para retirar os acentos no momento em que as palavras são apresentadas na tela

1 –  Execute o script para a criação da tabela TB_PALAVRAS_ACENTUADAS:

CREATE                TABLE                   TB_PALAVRAS_ACENTUADAS

(

                  PALAVRA          VARCHAR2(20)

);

COMMIT;

 

2 –  Insira palavras acentuadas na tabela TB_PALAVRAS_ACENTUADAS:

INSERT INTO TB_PALAVRAS_ACENTUADAS VALUES ('Ação');

INSERT INTO TB_PALAVRAS_ACENTUADAS VALUES ('Macarrão');

INSERT INTO TB_PALAVRAS_ACENTUADAS VALUES ('José');

COMMIT;

 

3 – Rode o Script a seguir:

SELECT

  TRANSLATE(PALAVRA,

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

                  'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy')

FROM

TB_PALAVRAS_ACENTUADAS;

 

3 – Observe que as palavras inseridas com acentos são apresentadas sem nenhum acento.

 

 

Na Prática (Atividade 2)

Nesta atividade será usada a TB_PALAVRAS_ACENTUADAS  (criada na atividade 1). Em seguida a função TRANSLATE será usada em conjunto com um UPDATE para retirar os acentos das palavras diretamente na tabela, alterando definitivamente as palavras.

1 –  O script a seguir irá atualizar definitivamente os dados da TB_PALAVRAS_ACENTUADAS:

UPDATE

  TB_PALAVRAS_ACENTUADAS

SET

  PALAVRA = TRANSLATE(PALAVRA,

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

                  'SZszYACEIOUAEIOUAEIOUAOEUIONYaaceiouaeiouaeiouaoeuionyy');

COMMIT;

 

2 –  Selecione os dados da TB_PALAVRAS_ACENTUADAS, repare que todos os acentos foram removidos.

SELECT

                 PALAVRA

FROM

                 TB_PALAVRAS_ACENTUADAS;

 

Sobre o Autor:

Mestre em Engenharia de Produção pela Universidade Nove de Julho. Bacharel em Ciência da Computação também pela Universidade Nove de Julho. Atualmente é Professor de ensino superior (Universidade Nove de Julho), Analista de Sistemas na Empresa Atento e Pesquisador na área de Inteligência Computacional aplicada em investimentos na Bolsa de Valores de São Paulo. Possui experiência em Análise e desenvolvimento de sistemas, aplicações de Inteligência Computacional no Mercado de Ações, Análise Técnica para seleção de ações para investimentos na Bolsa de Valores. Curriculo Lattes: http://lattes.cnpq.br/0074185478343196