2010-08-03 11 views
6

Wir haben eine Tabelle mit einem 'Preis' Feld vom Typ NUMBER(20,7) .. In TOAD ich dies tun:Kröte schneidet/rundet große Oracle-Zahlen ab?

update mytable set price = 1234567890123.1234567; 

Dann mache ich diese wählen:

select price, to_char(price) from mytable 

PRICE    TO_CHAR(PRICE) 
1234567890123.12 "1234567890123.1234567" 

Frage ist, warum TOAD truncate tut das Ergebnis beim Anzeigen des Feldes NUMBER (20,7)? Die Daten sind offensichtlich vorhanden, da sie mit to_char ausgedruckt werden.

??

+1

Nicht sicher über TOAD, aber vielleicht gibt es eine Entsprechung zu der SQL * Plus "numformat" Einstellung? (http://www.adp-gmbh.ch/ora/sqlplus/numformat.html) – monojohnny

+1

Meine Version von TOAD, 9.1.0.62, hat keine Option, außer dass sehr lange Zahlen in wissenschaftlicher Notation angezeigt werden können. Nicht so toll - Sie müssen die TO_CHAR-Option verwenden, wenn Sie die Tabelle abfragen. –

Antwort

8

Toad beschränkt die Anzahl der Daten im Datengitter auf 15 Ziffern. Ich glaube, das liegt daran, dass Excel die Nummern auch auf 15 Ziffern begrenzt (oder dazu verwendet, sie zu begrenzen). Sie können die "wissenschaftliche Notation" unter Optionen -> Datenraster -> Daten aktivieren, Kontrollkästchen Große Zahlen in wissenschaftlicher Notation anzeigen. Das wird wahrscheinlich auch nicht helfen.

+0

Es klingt wie ein 53-Bit Double Significand gegenüber einem 64-Bit Integralwert. Verlieren 3 der niedrigstwertigen Ziffern = Verlust von ~ 1000 ~ = 2^10, was bedeutet, dass wir 10 von 64 Bits verloren haben und in den 53-Bit-Bereich gelangen. Nur eine zufällige Hypothese, und ich sehe keinen Grund dafür, dass sie einen integralen Wert in ein Double und wieder zurück stecken. –

2

Ich hatte ein ähnliches Problem, Toad hat meine Zahlen abgeschnitten/gerundet, wenn sie in der Rasteransicht angezeigt wurden.

fand ich heraus, dass die Schaltfläche Ausführen Statement durch die Verwendung oder durch Drücken von F9 um die Abfrage auszuführen dann das Abschneiden/Rundung nicht durchgeführt werden würde.

enter image description here

Ich hoffe, das hilft.

+0

Das macht auch für em einen Unterschied, aber wenn ich ein Skript/PL/SQL verwende, dann ist das keine Option. – Gaffi

3

->Rechtsklick auf dem Datenraster

-> Select "Grid Options..."

-> Unter "Data Grids" wählte "Data"

- > Deaktivieren Sie "Display large numbers in Scientific Notation"

Danach müssen Sie wieder schließen und TOAD öffnen. Das funktionierte für mich in TOAD Version 8.6.0.38