如何以正确的格式在oracle中假脱机一个数字

How to spool a number in oracle in correct format

我正在尝试通过在 SqlDeveloper 中执行脚本来假脱机记录,除了打印数据类型为 NUMBER(38,0) 的列的记录外,一切正常。

所有号码记录都按以下格式打印:

1.5E+18

我使用 set 尝试了很多组合,但没有任何效果。

可以使用to_char;例如:

SQL> select to_char(n, '999999999999999999999') from numbers;

TO_CHAR(N,'99999999999
----------------------
   1500000000000000000

这样您就可以决定要使用的确切格式;例如:

SQL> select to_char(n, 'FM999G999G999G999G999G999G999G999') from numbers;

TO_CHAR(N,'FM999G999G999G999G999
--------------------------------
1.500.000.000.000.000.000

如果您不需要完全控制格式,and/or您不想修改您的代码,您可以遵循 Nicholas Krasnov 的建议:

SQL> set numwidth 50
SQL> select n from numbers;

                                                 N
--------------------------------------------------
                               1500000000000000000