DBAtlas · Atlas für Datenbankbetrieb

22003: numeric_value_out_of_range

PostgreSQL

Was bedeutet das?

Ein numerischer Wert liegt außerhalb des vom Zieltyp erlaubten Bereichs. Zum Beispiel ein Wert über 2 Milliarden in einer integer-Spalte oder eine für eine numeric(5,2)-Spalte zu große Zahl.

Ursache

Überschreiten der Grenzen von smallint/integer/bigint; Überschreiten von Precision/Scale bei numeric(p,s); arithmetischer Überlauf; eine Summe/ein Produkt übersteigt die Kapazität des Typs; eine Sequence erreicht die Obergrenze ihres Typs.

Lösung

Ändere die Spalte bzw. den Parameter auf einen breiteren Typ (bigint statt integer, höhere numeric-Precision): ALTER TABLE my_table ALTER COLUMN my_column TYPE bigint; Runde (ROUND) oder validiere den Wert gemäß der Geschäftsregel. Läuft eine Zwischenberechnung über, berechne den Ausdruck als numeric. Erweitere bei einem Sequence-Überlauf den Typ.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank