sql >> Base de Datos >  >> RDS >> Oracle

Oracle:cadena dividida delimitada por comas (la cadena contiene espacios y comas consecutivas)

Pruebe esto para analizar la parte de la lista. Maneja NULLS:

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>

Desafortunadamente, cuando busca expresiones regulares para analizar listas, siempre encontrará este formulario que NO maneja valores nulos y debe evitarse:'[^,]+' . Consulte aquí para obtener más información:Dividir valores separados por comas en columnas en Oracle.