Me temo que su respuesta aceptada no maneja el caso en el que necesita el valor después de la posición nula (intente obtener el sexto campo):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
_dt
2 from dual;
P
-
Creo que debes hacer esto en su lugar (funciona en 11g):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
NULL, 1) phn_end_dt
2 from dual;
P
-
P
Acabo de descubrir esto después de publicar mi propia pregunta:REGEX para seleccionar el enésimo valor de una lista, permitiendo valores nulos