Errore: ORA-00907: parentesi destra mancante: puoi aiutare a risolvere il problema

Aug 24 2020
select regexp_substr((replace(replace(replace(('CA','CO','IL','KS'),chr(40)),chr(41)), chr(39))), '[^,]+', 1, level) as division from dual
                                   connect by level <= regexp_count(('CA','CO','IL','KS'), '[,]') + 1;  

ERRORE: ORA-00907: parentesi destra mancante 00907. 00000 - "parentesi destra mancante"

Puoi aiutarmi a capire perché si sta verificando un errore.

MODIFICA - Non posso manipolare la stringa per avere virgolette extra lì dentro. Questo è un formato fisso che ottengo da una tabella. Come posso rimuoverlo per ottenere un output in formato riga?

Risposte

1 BarbarosÖzhan Aug 24 2020 at 21:46

Hai un problema di citazione ( cita l'intero termine ('CA','CO','IL','KS')dopo aver aggiunto virgolette extra per ogni singola citazione ), prova questo piuttosto:

 SELECT regexp_substr((replace(replace(replace('(''CA'',''CO'',''IL'',''KS'')',
                      chr(40)),
                      chr(41)), 
                      chr(39))), '[^,]+', 1, level) AS division 
   FROM dual
CONNECT BY level <= regexp_count('(''CA'',''CO'',''IL'',''KS'')', ',') + 1;

DIVISION
--------
CA
CO
IL
KS

Demo