Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle REGEX_SUBSTR não honrando valores nulos


Receio que sua resposta aceita não lide com o caso em que você precisa do valor após a posição nula (tente obter o 6º campo):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '[^,]*', 1, 6) phn_end
_dt
  2  from dual;

P
-

Você precisa fazer isso, eu acredito (funciona em 11g):
SQL> select REGEXP_SUBSTR ('2035197553,2,S,14-JUN-14,,P', '([^,]*)(,|$)', 1, 6,
NULL, 1) phn_end_dt
  2  from dual;

P
-
P

Acabei de descobrir isso depois de postar minha própria pergunta:REGEX para selecionar o enésimo valor de uma lista, permitindo nulos