Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Vermeiden Sie das Einfügen eines exponentiellen Werts in die DB Float-Spalte

Es wird nicht als Exponential gespeichert, sondern in der internen Zahlendarstellung von Oracle. Wenn Sie es abfragen, wird es mit dem aktuellen Zahlenformat Ihrer Sitzungen angezeigt:

select 0.0000000555559080767 from dual;

                  0.0000000555559080767
---------------------------------------
                                5.6E-08

Welche Sie in SQL*Plus oder SQL Developer überschreiben können:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

   0.0000000555559080767
------------------------
    .0000000555559080767

Oder formatieren Sie den Wert explizit als Zeichenfolge, nur zur Anzeige:

set numf ""
select to_char(0.0000000555559080767, '9990.9999999999999999999') from dual;

TO_CHAR(0.000000055555908
-------------------------
    0.0000000555559080767

Wenn Sie eine Client-Anwendung haben, die den Wert abruft und verwendet, sollte sie ihn als Gleitkommazahl in einem geeigneten Datentyp für die Sprache des Clients abfragen, und dann ist es Sache des Clients, wie er angezeigt wird.

Sie sollten auch keine Zeichenfolge in die Float-Spalte einfügen, da dies nur eine implizite Konvertierung durchführt. das letzte Argument in Ihrer Einfügung sollte 0.0000000555559080767 sein anstelle des zitierten '0.0000000555559080767' .