Databases Reference
In-Depth Information
Unter den Kommazahlen gibt es als Besonderheit die Fest-
kommazahlen, wobei bei DECIMAL(p,q) oder mit gleicher
Bedeutung bei NUMERIC(p,q) durch p die Genauigkeit und
durch q die Anzahl der Nachkommastellen festgelegt werden.
Dies wird in folgendem kleinen Beispiel verdeutlicht:
DECIMAL
NUMERIC
CREATE TABLE Typtest(
Nummer Integer,
n NUMERIC(5,2),
PRIMARY KEY (Nummer)
)
In diese Tabelle werden folgende Werte eingetragen:
INSERT INTO Typtest VALUES (1,999.99);
INSERT INTO Typtest VALUES (2,-999.99);
SELECT * FROM Typtest
Das Ergebnis ist:
NUMMER N
---------- ----------
1 999,99
2 -999,99
Jetzt werden die Werte durch 10 geteilt:
UPDATE Typtest
SET n=n/10
Die folgende Anfrage
SELECT * FROM Typtest
führt zum Ergebnis
NUMMER N
---------- ----------
1 100
2 -100
Da nur mit zwei Stellen hinter dem Komma gerechnet wird,
fand eine Rundung z. B. von 99,999 auf 100 statt. Mit dem fol-
genden Test kann man feststellen, dass in der Datenbank auch
intern nicht mit 99,999 gerechnet wird. Die Tabelleninhalte
werden mit 10 multipliziert.
Probleme mit
Rundungen
UPDATE Typtest
SET n=n*10
Das Datenbank-Managementsystem antwortet in der Form
FEHLER in Zeile 2:
Wert größer als angegebene Stellenzahl für diese
Spalte zulässt
128
Search WWH ::




Custom Search