2017-09-06 4 views
0

Ich habe eine Spalte in einer Tabelle in meinem Oracle-DB vom Typ NUMBER erstellt, aber beim Erstellen dieser Spalte habe ich die Präzision und Maßstab leer gelassen.Oracle DB liefert negative Skalierung und 0 Genauigkeit mit JDBC

Als ich die ResultSetMetadata Klasse von java.sql verwendete, um die Spalteninformationen zu erhalten, bekam ich zurück, dass die Spaltengenauigkeit 0 war und dass die Skala -127 war.

Die Oracle-Dokumente sagen, dass

Das Fehlen von Genauigkeit und Skalierung Bezeich die maximale Reichweite und Präzision für eine Oracle-Nummer angibt.

Aber was bedeutet das in diesem Fall? Wie lautet die zurückgegebene Genauigkeit gleich 0 und die Skalierung eine negative Zahl?

Sollte ich die Skala und Präzision in einer anderen Weise erhalten?

+1

In Verbindung stehend (möglicherweise duplizieren): https://stackoverflow.com/questions/1410267/oracle-resultsetmetadata-getprecision-getscale?rq=1 und https://stackoverflow.com/questions/593197/what-is-the -default-precision-and-scale-für-eine-nummer-in-oracle? rq = 1 –

+0

Vielen Dank! Das wirft zwar ein Licht auf das Problem, aber ich bin immer noch verwirrt, warum die zurückgegebene Skala -127 beträgt. – aBrokenSniper

+1

Soweit ich sagen kann, Oracle verwendet -127 als ein Signal, dass es keine normale Skala ist, aber hat eine besondere Bedeutung. –

Antwort

1

Oracle gibt -127 zurück, wenn die Skalierung nicht angegeben ist. Dies wird in der: JavaDoc erwähnt.

Verwandte Themen