sql >> Database >  >> RDS >> Oracle

het krijgen van foutargument '0' is buiten bereik

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

retourneert 0 (geeft aan dat de substring die u zoekt niet is gevonden) en als u dit probeert:

 REGEXP_SUBSTR( value, regex, 0 )

U krijgt de foutmelding:

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

In plaats daarvan kunt u het volgende gebruiken:

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
)



  1. SQL Server:rij aanwezig in de ene query, ontbreekt in een andere

  2. postgresql genereert een reeks zonder tussenruimte

  3. ADD_MONTHS() Functie in Oracle

  4. Voeg meerdere records in SQL in waarbij waarden alle combinaties zijn van gedefinieerde bereiken in een enkele query