DBAtlas · Atlas für Datenbankbetrieb

ORA-12899: value too large for column (Wert zu groß für Spalte)

Oracle

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank