Oracle
 sql >> Database >  >> RDS >> Oracle

Oracle SQL:restituisce la prima riga di stringa utilizzando regexp_substr

L'espressione regolare di Parado corrisponde più volte a tutto ciò che non è una virgola seguita da un ritorno a capo. Ciò significa che non funzionerà per un avanzamento riga o se è presente una virgola nel testo.

Oracle supporta le espressioni multiriga utilizzando m parametro di corrispondenza . Quando si utilizza questa modalità, $ corrisponde alla fine di ogni riga e alla fine della stringa. Puoi usarlo per semplicemente l'espressione in modo massiccio a:

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

Cioè corrisponde alla prima occorrenza (la prima riga) della stringa che corrisponde a qualcosa, seguita dalla fine della stringa, a partire dal primo carattere.

Ad esempio:

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