Oracle - Integer-Datentyp Präzision max? Ich bin in der Lage, geben Sie mehr als 38 zahlen in einem integer-Feld
Habe ich eine integer-Spalte, und für die anderen eine Ganzzahl ist, soll eine Genauigkeit von 38 und ist im Grunde ein alias für den Typ delcaration von Number(38)
Ich bin sicher, ich bin etwas fehlt, aber wie bin ich in der Lage, geben Sie 128 Ziffern in einen INTEGER-Spalte?
CREATE TABLE TEST
(
ID_INT INTEGER NOT NULL
);
insert into test( id_int)
values ( '0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890129010');
Version: Oracle 11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Zeile einzufügen. Aber die Daten selbst werden dann abgeschnitten. Zum Beispiel, beachten Sie, dass die letzten 2 Ziffern sind verloren, wenn ich die Daten Abfragen
sql> column id_int format 999999999...
auf 99 stellen). Ich sehe nicht ein Weg, um SQLPlus versuchen zum anzeigen von zahlen mit mehr als 100 stellen, ohne mit der wissenschaftlichen Schreibweise, die ist, warum ich eine kleinere Zahl in meinem Beispiel.INTEGER
ist tatsächlich ein alias fürNUMBER
(das kann auch geschrieben werden alsNUMBER(*)
) und nichtNUMBER(38)
.NUMBER
auf seine eigenen Mittel, keine Präzision und können Sie einen Wert speichern. Die38
ist eine Garantie von 38 Ziffern der Präzision zu ermöglichen, die übertragbarkeit zwischen verschiedenen Systemen mit Oracle-obwohl es gerne ermöglichen, zahlen, die viel höher - nur nicht erwarten, dass es immer port korrekt, wenn Sie einmal zu. Ich erstellt eine test-Tabelle:Und hier ist eine Abfrage zeigen die Genauigkeiten gespeichert:
Bekomme ich zurück:
Ich glaube, Präzision bezieht sich auf die maximale Anzahl der signifikanten Ziffern
Nicht das gleiche wie zu erlauben, nur 38-Länge Nummer.
Sehen Sie sich hier Erklärung der signifikanten stellen.