sql >> Base de Datos >  >> RDS >> Oracle

Evite insertar un valor exponencial en la columna DB Float

No se almacena como exponencial, se almacena en la representación numérica interna de Oracle. Cuando lo consulta, se muestra con el formato de número actual de sus sesiones:

select 0.0000000555559080767 from dual;

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

Que puede anular en SQL*Plus o SQL Developer:

set numformat 999.9999999999999999999
select 0.0000000555559080767 from dual;

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

O formatee explícitamente el valor como una cadena, solo para visualización:

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

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

Si tiene una aplicación cliente que recupera y usa el valor, entonces debería consultarlo como un flotante, en un tipo de datos adecuado para el idioma del cliente, y luego depende del cliente cómo se muestra.

Tampoco debería insertar una cadena en la columna flotante, que solo hace una conversión implícita; el último argumento en su inserción debe ser 0.0000000555559080767 en lugar del citado '0.0000000555559080767' .