Ich versuche, die folgende Anweisung in Oracle SQL Developer einzufügen:Was mache ich falsch mit meiner Zahlenpräzision und Skalierung?
INSERT INTO ACC
VALUES (1245890, 234.50, 'Broomhill', '15-NOV-2003', 100.00);
Die Aussage, ohne einen Fehler gut genug einfügt, aber ich merkte, wenn sich die Daten ansehen suchen, dass die Zeile zeigt die 2. und 4. Werte mit einem Dezimalpunkt weniger.
(z 234,5 und 100,0, wenn es sollen 234.50 und 100.00 sein)
Ich habe versucht, die Genauigkeit und Maßstab in meinem Tisch zu erhöhen Code erstellen, um es zu erlauben, korrekt angezeigt werden.
CREATE TABLE ACC
(
"ACCNO" NUMBER(7),
"BALANCE" NUMBER(5,2),
"BRANCH" VARCHAR(15),
"OPENED" DATE,
"BONUS" NUMBER(5,2)
);
änderte ich das Gleichgewicht und die BONUS-Datentypen leicht
CREATE TABLE ACC
(
"ACCNO" NUMBER(7),
"BALANCE" NUMBER(5,3)
"BRANCH" VARCHAR(15),
"OPENED" DATE,
"BONUS" NUMBER(5,3)
);
sondern erhalte ich eine Fehlermeldung, dass:
Error starting at line : 94 in command -
INSERT INTO ACC
VALUES (1245890, 234.50, 'Broomhill', '15-NOV-2003', 100.00)
Error report -
ORA-01438: value larger than specified precision allowed for this column
Was soll ich mit meinem Code falsch? Wie kann ich es schreiben, damit es meine Werte richtig anzeigt?
Die Standard-Antwort ist, dass dies eine Formatierung Problem ist, dass der Code _accessing_ Ihre Daten zu tun haben sollte. Was gespeichert ist, ist die notwendige Information, damit Sie die Daten beliebig formatieren können. – Ben
Ist diese Zahl Geld? Wenn ja, überprüfen Sie hier: https://stackoverflow.com/questions/29014283/sql-datatype-to-use-when-inserting-money –
Übrigens sollten Datum Literale wie "Datum" 2003-11-03 geschrieben werden "". –