SYSTEMTI.NET

Caminho de navegação do fórum - Você está aqui:Comunidade SYSTEMTI.NETBanco de Dados: Oracle DatabaseCondição REGEXP_LIKE
Please or Cadastrar to create posts and topics.

Condição REGEXP_LIKE

Olá, pessoal. Compartilhar com vocês uma condição similar ao LIKE, porém mais potente e versátil. É possível utiliza-la na cláusula WHERE de uma instrução SELECT, INSERT, UPDATE ou DELETE. Pode ser usado nos seguintes tipos de dados VARCHAR2, CHAR, NVARCHAR2, NCHAR, CLOB ou NCLOB.

SINTAXE
REGEXP_LIKE ( expressão, padrão [, parâmetros ] )

Exemplo de consulta de dois atendimentos utilizando o modelo | que corresponde ao 'OU'

Exemplo de consulta de variação de nome utilizando o modelo | que corresponde ao 'OU'

Exemplo de consulta que retorna o nome com uma vogal dupla utilizando diversos modelos

Exemplo de consulta variação de nome utilizando diversos modelos

Abaixo deixo uma tabela contendo todos os padrões possíveis de utilização dentro da condição REGEXP_LIKE.

ValorDescrição
^Corresponde ao início de uma string. Se usado com um match_parameter de 'm', ele corresponde ao início de uma linha em qualquer lugar dentro de expression .
$Corresponde ao final de uma string. Se usado com um match_parameter de 'm', ele corresponde ao final de uma linha em qualquer lugar dentro de expression .
*Corresponde a zero ou mais ocorrências.
+Corresponde a uma ou mais ocorrências.
?Corresponde a zero ou uma ocorrência.
.Corresponde a qualquer caractere, exceto NULL.
|Usado como um "OU" para especificar mais de uma alternativa.
[ ]Usado para especificar uma lista de correspondência na qual você está tentando corresponder a qualquer um dos caracteres da lista.
[^]Usado para especificar uma lista não correspondente em que você está tentando corresponder a qualquer caractere, exceto os da lista.
( )Usado para agrupar expressões como uma subexpressão.
{m}Corresponde m vezes.
{m,}Corresponde pelo menos m vezes.
{m,n}Corresponde pelo menos m vezes, mas não mais do que n vezes.
\nn é um número entre 1 e 9. Corresponde à n-ésima subexpressão encontrada em ( ) antes de encontrar \n.
[..]Corresponde a um elemento de agrupamento que pode ter mais de um caractere.
[::]Corresponde às classes de caracteres.
[==]Corresponde às classes de equivalência.
\dCorresponde a um caractere de dígito.
\DCorresponde a um caractere não dígito.
\CCorresponde a um caractere de palavra.
\CCorresponde a um caractere não-palavra.
\sCorresponde a um caractere de espaço em branco.
\Scorresponde a um caractere que não seja de espaço em branco.
\UMACorresponde ao início de uma string ou ao final de uma string antes de um caractere de nova linha.
\ZCorresponde ao final de uma string.
*?Corresponde ao padrão anterior zero ou mais ocorrências.
+?Corresponde ao padrão anterior uma ou mais ocorrências.
??Corresponde ao padrão anterior zero ou uma ocorrência.
{n}?Corresponde ao padrão anterior n vezes.
{n,}?Corresponde ao padrão anterior pelo menos n vezes.
{n,m}?Corresponde ao padrão anterior pelo menos n vezes, mas não mais do que m vezes.

 

Deixo também um link com maiores explicações sobre a condição https://www.techonthenet.com/oracle/regexp_like.php / https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm

Em anexo deixo mais exemplos.

Espero que seja útil.

Arquivos enviados:
  • Você precisa fazer o login para ter acesso aos uploads.
Se você deseja apoiar o desenvolvimento do SYSTEMTI.NET, você pode compartilhar algum conteúdo no fórum ou doar. Muito obrigado !