Oracle
 sql >> Database >  >> RDS >> Oracle

Evita di inserire un valore esponenziale nella colonna DB Float

Non è archiviato come esponenziale, è archiviato nella rappresentazione del numero interno di Oracle. Quando lo interroghi, viene visualizzato con il formato numerico corrente delle tue sessioni:

select 0.0000000555559080767 from dual;

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

Che puoi sovrascrivere in SQL*Plus o SQL Developer:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

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

Oppure formattare in modo esplicito il valore come stringa, solo per la visualizzazione:

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

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

Se si dispone di un'applicazione client che recupera e utilizza il valore, dovrebbe interrogarlo come float, in un tipo di dati adatto alla lingua del client, quindi spetta al client come visualizzarlo.

Inoltre, non dovresti inserire una stringa nella colonna float, che esegue solo una conversione implicita; l'ultimo argomento nel tuo inserto dovrebbe essere 0.0000000555559080767 anziché il '0.0000000555559080767' tra virgolette .