Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle-Split-String kommagetrennt (String enthält Leerzeichen und aufeinanderfolgende Kommas)

Versuchen Sie dies für das Parsen des Listenteils. Es verarbeitet NULLEN:

SQL> select regexp_substr('12 3,456,,abc,def', '(.*?)(,|$)', 1, level, null, 1) SPLIT, level
    from dual
    connect by level <= regexp_count('12 3,456,,abc,def',',') + 1
    ORDER BY level;

SPLIT                  LEVEL
----------------- ----------
12 3                       1
456                        2
                           3
abc                        4
def                        5

SQL>

Wenn Sie nach regulären Ausdrücken zum Parsen von Listen suchen, werden Sie leider immer diese Form finden, die KEINE Nullen verarbeitet und vermieden werden sollte:'[^,]+' . Weitere Informationen finden Sie hier:Trennen Sie kommagetrennte Werte in Spalten in Oracle.