sql >> Databáze >  >> RDS >> Oracle

Vyhněte se vkládání exponenciální hodnoty do sloupce DB Float

Není uloženo jako exponenciální, je uloženo v interní číselné reprezentaci Oracle. Když na něj zadáte dotaz, zobrazí se s aktuálním číselným formátem vašich relací:

select 0.0000000555559080767 from dual;

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

Které můžete přepsat v SQL*Plus nebo SQL Developer:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

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

Nebo explicitně naformátujte hodnotu jako řetězec, pouze pro zobrazení:

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

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

Pokud máte klientskou aplikaci, která načítá a používá hodnotu, měla by ji dotazovat jako float, do datového typu vhodného pro jazyk klienta, a pak je na klientovi, jak se zobrazí.

Také byste neměli vkládat řetězec do sloupce float, který pouze provádí implicitní převod; poslední argument ve vaší vložce by měl být 0.0000000555559080767 namísto citovaného '0.0000000555559080767' .



  1. Hledání zašifrovaného pole v Postgresu

  2. ANDROID&PHP - Jak zobrazit JSONArray z MySql pomocí PHP

  3. Sequelize:Použití více databází

  4. Microsoft Access NENÍ mrtvý a ani VBA