Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle SQL :renvoie la première ligne de la chaîne à l'aide de regexp_substr

L'expression régulière de Parado correspond à tout ce qui n'est pas une virgule plusieurs fois suivi d'un retour chariot. Cela signifie que cela ne fonctionnera pas pour un saut de ligne ou s'il y a une virgule dans le texte.

Oracle prend en charge les expressions multilignes en utilisant le m paramètre de correspondance . Lorsque vous utilisez ce mode, $ correspond à la fin de chaque ligne ainsi qu'à la fin de la chaîne. Vous pouvez l'utiliser pour simplifier massivement l'expression pour :

regexp_substr(str, '.*$', 1, 1, 'm')

Cela correspond à la première occurrence (la première ligne) de la chaîne qui correspond à n'importe quoi, suivie de la fin de la chaîne, à compter du premier caractère.

Par exemple :

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