Feldüberlauf numeric

Ludwigmller

SQL-Guru
Beiträge
168
Ich bekomme beim INSERT von 900 Tupeln den Fehler "Ein Feld mit Präzision 6, Skala 4 muss beim Runden einen Betrag von weniger als 10^2 ergeben."
Heißt das es dürfen nur Zahlen kleiner als 100 gespeichert werden? Die größte Zahl ist meiner Meinung nach 50. Wie kann ich die Zeile anzeigen lassen die den Fehler verursacht?

Gruß Ludwig
 
Werbung:
also faktisch dies:

Code:
postgres=# insert into bla values (100.5);
ERROR:  numeric field overflow
DETAIL:  A field with precision 6, scale 4 must round to an absolute value less than 10^2.
postgres=#

Du könntest die Daten vielleicht erst einmal in eine Tabelle ohne numerischen Begrenzung eingeben und prüfen, welche das ist...
 
Werbung:
Die größte Zahl ist meiner Meinung nach 50
Wenn ich ehrlich bin, glaube ich in dem Fall Postgres eher als Dir ;)

Wenn Du die Zahlen für den INSERT in einer VALUES Klausel hast, dann könntest Du sowas machen:

Code:
select *
from ( values (..), (..), (..) ) as x(nr)
where x.nr > 100

Den Teil mit values (..), (..), (..) kannst Du direkt aus Deinem INSERT übernehmen.
 
Zurück
Oben