I need to split a string in Oracle PL/SQL with comma-separated in order, including empty fields as "none" value. This is an example with 6 fields but can have more or less fields
line varchar2(100) := "value1;value2;;;value5;value6;";
WITH test AS (SELECT line FROM DUAL)
SELECT NVL(REGEXP_SUBSTR (line, '[^;]+', 1, ROWNUM),'none') as SPLIT
FROM test
CONNECT BY LEVEL <= LENGTH (REGEXP_REPLACE (line, '[^;]+'));
Output:
value1
value2
value5
value6
none
none
Desirable output:
value1
value2
none
none
value5
value6