ORA-01722: Invalid number (ungültige Zahl)
OracleWas bedeutet das?
Eine Zeichenkette, die nicht in eine Zahl umgewandelt werden kann, wurde in einem numerischen Kontext verwendet. Eine implizite oder explizite Konvertierung ist fehlgeschlagen.
Ursache
Vergleich einer numerischen Spalte mit Text (z. B. WHERE num_col = 'ABC'), Einfügen eines Werts mit Buchstaben in ein numerisches Feld, ein ungeeignetes Format für TO_NUMBER oder ein falsches Dezimal-/Gruppentrennzeichen (Komma vs. Punkt).
Lösung
Finde den Ausdruck mit der fehlschlagenden Konvertierung; meist eine WHERE-Bedingung oder ein INSERT-Wert. Stelle bei Text-/Zahlenvergleichen Typkompatibilität sicher und verwende bei Bedarf explizite Konvertierung: TO_NUMBER(my_column) oder TO_CHAR für die Textseite. Verhindere nicht-numerische Eingaben in numerische Spalten auf Anwendungsebene. Achte auf die Einstellung NLS_NUMERIC_CHARACTERS.
Weitere Einträge zu dieser Datenbank
- ORA-00018Maximum number of sessions exceeded (maximale Anzahl von Sessions überschritten)
- ORA-28000The account is locked (das Konto ist gesperrt)
- ORA-01578Oracle data block corrupted (file #, block #) (Oracle-Datenblock beschädigt)
- ORA-02049Timeout: distributed transaction waiting for lock (Timeout: verteilte Transaktion wartet auf Sperre)
- enq: TX - row lock contentionWait: Session durch Zeilensperre einer anderen Transaktion blockiert
- log file syncWait: Session wartet beim Commit, bis LGWR Redo auf Disk schreibt
- db file sequential readWait: physischer Single-Block-Read, typisch bei Index- oder Tabellenzugriff