DBAtlas · Atlas für Datenbankbetrieb

ORA-01438: value larger than specified precision allowed for this column (Wert größer als die für die Spalte erlaubte Precision)

Oracle

Was bedeutet das?

In eine NUMBER-Spalte wurde eine Zahl geschrieben, die die definierten Grenzen für Precision und Scale überschreitet. Zum Beispiel passt ein Wert mit dreistelligem ganzzahligem Anteil nicht in eine NUMBER(4,2)-Spalte.

Ursache

Die Definition NUMBER(p,s) der Spalte ist für die Daten zu knapp; ein Rechenergebnis ist größer als erwartet; die Nachkommastellen verringern die für den ganzzahligen Anteil verbleibenden Stellen (NUMBER(5,3) erlaubt nur 2 Vorkommastellen).

Lösung

Erweitere die Spaltenkapazität passend zum tatsächlichen Datenbereich: ALTER TABLE my_table MODIFY (my_column NUMBER(12,2)); Runde den Wert in der Anwendung oder passe ihn mit ROUND/TRUNC an die Scale an. Um die überlaufende Zeile zu finden, grenze deine Abfrage beim Testen ein, und ergänze eine Eingabevalidierung.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank