2016-05-20 7 views
0

Ich habe eine Tabelle scm.agreement_rebate, wo der Spalt genericrx_percent vom Typ Dezimal ist (18,4), und wenn ich versuche, diese Aussagearithmetischer Überlauf beim Einfügen Dezimal Wertes

INSERT INTO scm.agreement_rebate (agreement_id, rebate_type_cd, genericrx_percent, percent_override, 
            monthly_fee, monthly_fee_override, percent_amount, sales_type_cd,  
            system_generated_flag, last_user_id, last_ts) 
VALUES (43958, 192, 1000.0, NULL, NULL, NULL, 1.0, 154, 'N', 1, GETDATE()) 

ich den Fehler auszuführen

Msg 8115, Ebene 16, Status 8, Prozedur TRG_A_R_A_INS_A, Zeile 11
Arithmetischer Überlauffehler bei dem Konvertieren numerischen Datentyp numerisch.

Das Problem ist definitiv mit der generixrx_percent Spalte. Wenn ich den Wert auf 100.0 ändere, funktioniert es. Wie ich den dezimalen Datentyp verstehe, sollte Decimal(18, 4) mir insgesamt 18 Ziffern geben, mit 4 auf der rechten Seite der Dezimalstelle.

Was fehlt mir?

+2

Da läuft wahrscheinlich etwas Mathe dahinter ... Suche nach Triggern, (prüfe) Einschränkungen, berechneten Spalten ... Ich bin mir ziemlich sicher, dass es nicht der Wert selbst ist, sondern etwas, was du damit machst ... – Shnugo

+0

Erstellen einer Tabelle mit einer Spalte von Dezimal (18,4) und dann Einfügen von sowohl 100,0 und 1000,0 funktioniert gut. Vereinbaren Sie mit Shnugo, überprüfen Sie andere Dinge in Ihrer Prozedur und sehen Sie, wie es mit diesem Wert arbeitet. – dfundako

Antwort

0

Guten Ruf, Shnugo. Es stellte sich heraus, dass, obwohl ich der einzige Entwickler bin, es immer noch einige Objekte gab, auf die ich keinen Zugriff hatte, die ein paar abgefahrene Sachen machten.

Verwandte Themen