Regex com PL/SQL (Oracle)

[ad#texto]

Regex costuma ser um grande desafio para desenvolvedores iniciantes, primeiro por não compreenderem claramente como funciona e o seu objetivo e segundo por não saberem corretamente quando aplicar, vamos aproveitar este espaço para esclarecer o que é Regex e em seguida como aplica-la utilizando Oracle PL/SQL.

Regex nada mais é do que uma expressão (conjunto de caracteres específicos) utilizada para realizar buscas específicas alfanuméricas, seu poder é tão vasto que a maioria dos mecanismos de buscas atuais implementa Regex em sua engine visto a sua versatilidade, eficiência e escalabilidade.

Regex (abreviação de Regular Expressions ou traduzindo o termo para o português fica ER de Expressão Regulares) tem origem nos estudos de neurolinguística da década de 40 e nos estudos de matemática na década de 50 e tem como representante maior Stephen Cole Kleene e tem ampla aplicação na ciência da computação e matemática.

Está incorporada em diversas linguagens e plataformas de programação, como Java, C e C# (só para citar alguns) e em diversos SGBDs sendo incorporada a normatização ANSI SQL99. Algumas de suas aplicações na informática são:

  • Localizar um pedaço de texto onde temos somente uma “ideia” de como será (sem precisão na busca);
  • Localizar texto pelo início ou termino já conhecido;
  • Efetuar buscas complexas (com base em padrões) em texto;
  • Validar strings;
  • Filtrar texto.

Especificamente falando em Oracle, Regex está implementando na versão 10G e superiores, os principais comandos embutidos no PL/SQL para utilização de Regex são:

  • REGEXP_LIKE(): similar ao comando LIKE, porém implementado sob a ótica das Regex, presta-se a consulta dos termos estabelecidos;
  • REGEXP_REPLACE(): altera a string localizada pelo termo informado, substituindo por outro valor (string);
  • REGEXP_SUBSTR(): efetua a busca por parte da string encontrada com base no termo proposto;
  • REGEXP_COUNT(): está disponível somente a partir da versão 11G. Efetua a contagem de quantas ocorrências para o termo buscado foram encontradas.

Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.