Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Evite inserir valor exponencial na coluna DB Float


Ele não é armazenado como exponencial, é armazenado na representação numérica interna do Oracle. Quando você o consulta, ele é exibido com o formato de número atual de suas sessões:
select 0.0000000555559080767 from dual;

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

Que você pode substituir no SQL*Plus ou SQL Developer:
set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

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

Ou formate explicitamente o valor como uma string, apenas para exibição:
set numf ""
select to_char(0.0000000555559080767, '9990.9999999999999999999') from dual;

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

Se você tiver um aplicativo cliente recuperando e usando o valor, ele deve consultá-lo como um float, em um tipo de dados adequado para o idioma do cliente e, em seguida, cabe ao cliente como ele é exibido.

Você também não deve inserir uma string na coluna float, que apenas faz uma conversão implícita; o último argumento em sua inserção deve ser 0.0000000555559080767 em vez do '0.0000000555559080767' citado .