Oracle
 sql >> база данни >  >> RDS >> Oracle

Избягвайте да вмъквате експоненциална стойност в колоната на DB Float

Той не се съхранява като експоненциален, той се съхранява във вътрешното числово представяне на Oracle. Когато го заявите, той се показва с текущия числов формат на вашите сесии:

select 0.0000000555559080767 from dual;

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

Което можете да замените в SQL*Plus или SQL Developer:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

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

Или изрично форматирайте стойността като низ, само за показване:

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

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

Ако имате клиентско приложение, което извлича и използва стойността, то трябва да я запитва като плаваща стойност, в подходящ тип данни за езика на клиента и след това зависи от клиента как ще се покаже.

Също така не трябва да вмъквате низ в колоната с плаваща фигура, който просто прави имплицитно преобразуване; последният аргумент във вашето вмъкване трябва да бъде 0.0000000555559080767 вместо цитирания '0.0000000555559080767' .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle - Преобразуване на стойност от редове в диапазони

  2. Метод за събиране:Процедура EXTEND в базата данни на Oracle

  3. Изпълнете командата за импортиране на Oracle от Java и вижте изхода на конзолата

  4. Как да получа текстово съдържание от BLOB в Oracle SQL

  5. Уникално нарушение на ограничение по време на вмъкване:защо? (Оракул)