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

Oracle REGEX_SUBSTR no respeta los valores nulos

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