Após desbravarmos como limpar dados com REGEXP_REPLACE, vamos agora explorar outra função poderosa das expressões regulares no Oracle: REGEXP_SUBSTR. Esta função é incrível para extrair informações específicas de strings, permitindo a você isolar exatamente os dados que precisa sem alterar o restante do texto.

Antes de avançarmos, se você precisa de uma recapitulação sobre as regras de expressões regulares, confira nossa Tabela de Regras de Expressões Regulares Comuns.

O Que é REGEXP_SUBSTR?

REGEXP_SUBSTR é uma função que permite extrair uma substring de uma string que corresponde a um padrão de expressão regular definido. É extremamente útil para casos como extração de códigos, números de telefone, e-mails e muito mais de um conjunto de dados maior.

Exemplo Prático 1: Extração de Código Postal

Imagine que você tem uma coluna endereco com endereços completos e quer extrair apenas o código postal. Supondo que o código postal segue o padrão de cinco dígitos no final do endereço, aqui está como você faria isso:

SELECT endereco, 
       REGEXP_SUBSTR(endereco, '[0-9]{5}$') AS codigo_postal
FROM enderecos;
Endereço CompletoCódigo Postal
Rua das Flores 123, São Paulo, 1234512345
Av. Brasil 999, Rio de Janeiro, 2345623456
Praça da Árvore, Belo Horizonte, 3456734567

Exemplo Prático 2: Encontrando E-mails em Texto

Se você precisa extrair e-mails de um campo de texto livre, REGEXP_SUBSTR pode ajudar a capturar essas informações de forma eficaz. Vamos ver:

SELECT comentario, 
       REGEXP_SUBSTR(comentario, '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}') AS email
FROM comentarios;
ComentárioE-mail
Entre em contato via email@example.com.email@example.com
Meu e-mail para contato: user@test.orguser@test.org
Por favor, use company@mail.com para isso.company@mail.com

Conclusão

Com REGEXP_SUBSTR, a extração de dados específicos de textos torna-se uma tarefa simples e direta. Espero que esses exemplos inspirem você a explorar ainda mais as possibilidades das expressões regulares no Oracle. Para mais dicas sobre como limpar dados, não deixe de visitar nosso post sobre Simplificando a Limpeza de Dados com Expressões Regulares no Oracle.

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: