如何说服Oracle SQL Developer以科学计数法显示数字?

时间:2014-10-24 23:50:37

标签: sql oracle oracle-sqldeveloper

我使用的是Oracle SQL Developer版本4.0.3,并且我有一个大约1e-13的数字,所以将它显示为0.0000000000001 ...会不方便...

我无法找到任何改变此行为的选项,我想要的是与此问题相反的内容,但对于Oracle SQL开发人员: How to set numwidth in the grid output of PL/SQL developer?

我找不到类似的东西,有人知道这是否可能?

2 个答案:

答案 0 :(得分:1)

来自the documentation

to_char(<your number column>, '9.9EEEE')

在SQL Developer 4中:

SQL Developer window

我无法看到任何方式全局应用模型,正如您链接到的问题所接受的答案所示 - 当前版本的SQL Developer似乎没有像PL这样的首选项下的“SQL窗口”部分/ SQL Developer呢。但您可能不希望将模型应用于每个结果集中的每个数字。

答案 1 :(得分:0)

使用TO_CHAR(1e-13, '0.9999999999999');。您需要检查正确的格式模型以将科学记数法转换为字符串。我使用'。',您也可以使用'D'作为小数点分隔符,但这取决于您的NLS_NUMERIC_CHARACTER。

请在此处查看不同的数字格式http://www.java2s.com/Tutorial/Oracle/0300__Conversion-Functions/FormatParameters.htm

更新我最初回答了与要求相反的情况,即从科学记数法转换为常规数字格式。更新是关于将数字转换为科学记数法。

SQL Developer中,你会看到类似这样的内容:

enter image description here

SQL*Plus中,相同的SQL会将数字转换为科学记数法。

SQL> WITH DATA AS(
  2  SELECT to_number('0.0000000000001','0.99999999999999') num FROM dual
  3  )
  4  SELECT to_char(num, '9.9EEEE') num
  5  FROM DATA;

NUM
---------
  1.0E-13

SQL>

没有格式,

SQL> WITH DATA AS(
  2  SELECT to_number('0.0000000000001','0.99999999999999') num FROM dual
  3  )
  4  select num from data;

       NUM
----------
1.0000E-13

SQL>