registros - pl sql ejemplos
¿Por qué Oracle SQL SELECT expresión no imprime valor decimal? (3)
Esto es SQL * Plus y no tiene nada que ver con lo que se devuelve desde la base de datos. Puede usar los comandos de formato de columna SQL * Plus para obtener los formatos que desee, como este: -
SQL> select (4*(22/7)*3958.759*3958.759) as "Earth''s Area" from dual;
Earth''s Area
------------
197016573
SQL> col "Earth''s Area" for 99,999,999,999.9999999
SQL> /
Earth''s Area
-----------------------
197,016,572.5953040
Los documentos de Oracle con más detalles sobre las opciones de formato están aquí .
select (4*(22/7)*3958.759*3958.759) as "Earth''s Area" from dual;
Prints:
Earth''s Area
------------
197016573
Debería imprimir 197016572.595304. ¿Por qué los dígitos después del punto fueron ignorados en la salida?
Supongo que estás usando SQL * PLUS. La razón por la que no está viendo el resto del número es el valor del parámetro numwidth
. Por defecto es 10, por lo que necesita ajustarlo un poco, por ejemplo, 30. Aquí hay un ejemplo:
SQL> select (4*(22/7)*3958.759*3958.759) as "Earth''s Area" from dual;
Earth''s Area
------------
197016573
SQL> set numwidth 31
SQL> select (4*(22/7)*3958.759*3958.759) as "Earth''s Area" from dual;
Earth''s Area
----------------
197016572.595304
También puede anular el valor del parámetro set numformat
o column format
to_char((4*(22/7)*3958.759*3958.759)), ''FM99999990D00999999999'')
La FM elimina los espacios en blanco iniciales. Los 9 representan un número opcional en esa posición. La D representa el separador decimal. Los 0 representan números obligatorios en esa posición.