22003: numeric_value_out_of_range
PostgreSQLWas 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.