Oracle
 sql >> Database >  >> RDS >> Oracle

ottenere l'argomento di errore '0' è fuori dall'intervallo

INSTR(ltrim(pn.pname),'REFERENCE ID=')

restituisce 0 (a indicare che la sottostringa che stai cercando non è stata trovata) e se provi a farlo:

 REGEXP_SUBSTR( value, regex, 0 )

Riceverai l'errore:

ORA-01428: argument '0' is out of range

Invece, potresti usare:

REGEXP_SUBSTR(
  pn.pname,
  'REFERENCE ID="(\d+)"',
  1,                      -- Start from the 1st character
  1,                      -- Find the 1st occurrence
  NULL,                   -- No flags
  1                       -- Return the contents of the 1st capturing group
)