Vamos mergulhar no mundo das expressões regulares no Oracle para fazer algo que todos nós precisamos de vez em quando: limpar dados! Quem nunca se deparou com aquela tabela cheia de caracteres estranhos e pontuações indesejadas? Pois é, isso pode ser uma dor de cabeça, mas com algumas dicas simples, você vai ver como é fácil dar um jeito nisso.

O Básico: REGEXP_REPLACE

Primeiro, vamos falar sobre a função REGEXP_REPLACE. Ela é nossa ferramenta mágica para substituir partes de uma string que correspondem a um padrão específico que a gente define. A ideia é simples: você diz o que quer tirar e o que colocar no lugar (que pode ser nada, se você só quer remover).

Exemplo Prático 1: Dando Adeus aos Caracteres Especiais

Digamos que você tem uma coluna comentarios na tabela feedback_cliente que está cheia de caracteres como @, #, $, %, etc. Você quer que só sobre texto limpo e legível. Veja como fazer isso:

SELECT REGEXP_REPLACE(comentarios, '[^a-zA-Z0-9 ]', '') AS comentarios_limpos
FROM feedback_cliente;

Neste comando, estamos dizendo: “Oi Oracle, por favor, substitua qualquer coisa que não seja letra, número ou espaço por nada”. E pronto, caracteres especiais vão embora!

Exemplo Prático 2: Limpeza Completa

Agora, vamos supor que você quer uma limpeza mais geral, tirando qualquer tipo de pontuação. Sim, isso inclui pontos, vírgulas, ponto e vírgula, etc. Aqui vai:

SELECT REGEXP_REPLACE(comentarios, '[^a-zA-Z0-9 ]', '') AS comentarios_limpos
FROM feedback_cliente;

Mesmo comando, mesma lógica: se não é letra, número ou espaço, a gente não quer.

Visualizando a Transformação: Antes e Depois

Agora, vamos ver como os comentários foram transformados com a nossa limpeza. Aqui está uma tabela mostrando o ‘antes’ e o ‘depois’:

Comentário OriginalComentário Limpo
Excelente produto!!!Excelente produto
Ruim, muito ruim 🙁Ruim muito ruim
Nunca tive problemas. Recomendo 100%Nunca tive problemas Recomendo 100

Veja só, tudo limpinho e legível!

Conclusão

Usar expressões regulares para limpar dados no Oracle é super útil e não é nada complicado. Com esses exemplos que mostrei, você já pode começar a melhorar a qualidade dos dados que está trabalhando. Mas não para por aí! O Oracle oferece várias outras funções REGEXP incríveis que podem elevar ainda mais seu jogo de manipulação de dados. Por exemplo, você já ouviu falar de REGEXP_SUBSTR para extrair strings que correspondem a um padrão específico? E que tal REGEXP_INSTR, que pode localizar a posição de uma substring que corresponde a um padrão? Há também REGEXP_COUNT, que conta quantas vezes um padrão ocorre em uma string.

Explorar essas funções pode abrir um novo mundo de possibilidades para trabalhar com dados de maneira mais eficiente e criativa. Ficou curioso? Vale a pena dedicar um tempo para pesquisar mais sobre essas e outras funções de expressões regulares no Oracle. Quem sabe o que mais você pode descobrir!

Sobre o autor

Pós graduado em Gestão de Projetos em Tecnologia da Informação pela UNIASSELVI.
Esposo e Pai, curto atividades ao ar livre (Bike, SUP, Natação, Caminhar, Brincar no campo)

Atua com Banco de Dados Oracle desde de 2007. Atualmente é DBA Senior na FLUIDATA Serviços em Banco de dados (www.fluidata.com.br)

Principais atividade Banco de dados:

Implementação, migração, gerenciamento e suporte a produtos Oracle (8i, 9i, 10g, 11g, 12c, 18c, 19c RAC), multiplataforma;
Implementação, migração, gerenciamento e suporte a produtos Microsoft SQL Server (2008 - 2019);
Implementação, migração, gerenciamento e suporte a produtos PostgreSQL (9.3 - 14);
Monitoramento de ambientes 24×7;
Backup e Recovery;
Performance e Tuning;
Alta disponibilidade (HA);
EM database/grid/cloud control;
Conversão de databases;
Standby database / Oracle Data Guard;

Certificações:

Oracle Cloud Infrastructure 2019 Certified Architect AssociateOracle Cloud Infrastructure 2019 Certified Architect Associate
Oracle Database 12c Administrator Certified ProfessionalOracle Database 12c Administrator Certified Professional
Exadata Database Machine Models X2-2 and X2-8 Technology Support SpecialistExadata Database Machine Models X2-2 and X2-8 Technology Support Specialist
Oracle Database 11g Support SpecialistOracle Database 11g Support Specialist
OCP 11g - Oracle Certified Professional AdministratorOCP 11g - Oracle Certified Professional Administrator
OPN Certified Specialist 10g - PartnerNetwork Certified SpecialistOPN Certified Specialist 10g - PartnerNetwork Certified Specialist
Oracle Database 10g Real Applications Clusters AdministratorCertified ExpertOracle Database 10g Real Applications Clusters AdministratorCertified Expert
Oracle Database 10g: Managing Oracle on Linux Certified ExpertOracle Database 10g: Managing Oracle on Linux Certified Expert
OCP 10g - Oracle Certified Professional AdministratorOCP 10g - Oracle Certified Professional Administrator

Principais atividades DEVOPS:

PHP
ASP.net
C#
Docker
Golang
C++
Delphi
Python
HTML5
JavaScript

Você também pode gostar: