Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle SQL:Retorna a primeira linha da string usando regexp_substr


A expressão regular do Parado corresponde a tudo o que não é uma vírgula várias vezes seguida por um retorno de carro. Isso significa que não funcionará para um avanço de linha ou se houver uma vírgula no texto.

O Oracle suporta expressões de várias linhas usando o m parâmetro de correspondência . Ao usar este modo, $ corresponde ao final de cada linha, bem como ao final da string. Você pode usar isso para simplificar a expressão massivamente para:
regexp_substr(str, '.*$', 1, 1, 'm')

Isso corresponde à primeira ocorrência (a primeira linha) da string que corresponde a qualquer coisa, seguida pelo final da string, contando a partir do primeiro caractere.

Como um exemplo:
with strings as ( 
 select 'hi
         hi again' as str
   from dual
  union all
 select 'bye
         and again'
   from dual
        )
 select regexp_substr(str, '.*$', 1, 1, 'm')
   from strings