Опитайте това за анализа на частта от списъка. Той обработва NULL:
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>
За съжаление, когато търсите регулярни изрази за синтактичен анализ на списъци, винаги ще намерите този формуляр, който НЕ обработва нулеви стойности и трябва да се избягва:'[^,]+'
. Вижте тук за повече информация:Разделете стойностите, разделени със запетая, на колони в Oracle.