ORA-12899: value too large for column (Wert zu groß für Spalte)
OracleWas bedeutet das?
In eine Zeichen-/Datenspalte wurde ein Wert geschrieben, der länger als die definierte Maximallänge ist. Zum Beispiel passt ein 15 Zeichen langer Text nicht in eine VARCHAR2(10)-Spalte.
Ursache
Die Spaltenbreite reicht für die Daten nicht aus; bei einem Multibyte-Zeichensatz (UTF8) übersteigt die Zeichenanzahl das Byte-Limit (BYTE-Semantik); ein anderer Zeichensatz bei der Datenmigration; ein Verkettungsergebnis wird länger.
Lösung
Verbreitere die Spalte: ALTER TABLE my_table MODIFY (my_column VARCHAR2(100)); Verwende für Multibyte-Inhalte CHAR-Semantik: my_column VARCHAR2(100 CHAR). Müssen lange Werte gekürzt werden, schneide sie mit SUBSTR ab. Die Fehlermeldung nennt die tatsächliche und die erlaubte Länge; finde den überlaufenden Datensatz mit LENGTH/LENGTHB.
Weitere Einträge zu dieser Datenbank
- ORA-06550line/column PLS-... PL/SQL compilation error (PL/SQL-Kompilierfehler)
- ORA-04068existing state of packages has been discarded (bestehender Package-Zustand wurde verworfen)
- ORA-01427single-row subquery returns more than one row (einzeilige Unterabfrage liefert mehr als eine Zeile)
- ORA-30926unable to get a stable set of rows in the source tables (keine stabile Zeilenmenge in den Quelltabellen)
- ORA-08103object no longer exists (Objekt existiert nicht mehr)
- ORA-01843not a valid month (kein gültiger Monat)
- ORA-14400inserted partition key does not map to any partition (eingefügter Partitionsschlüssel passt zu keiner Partition)