transponer registros regexp_like multiple ejemplos dinamico desde columns columnas cero 10g sql oracle oracle11g sqlplus

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.