Jag är rädd att ditt accepterade svar inte hanterar fallet där du behöver värdet efter nollpositionen (försök att få det sjätte fältet):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
_dt
2 from dual;
P
-
Du måste göra detta istället tror jag (fungerar på 11g):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
NULL, 1) phn_end_dt
2 from dual;
P
-
P
Jag upptäckte just detta efter att ha postat min egen fråga:REGEX för att välja n:te värde från en lista, vilket tillåter nollor