【问题标题】:Oracle sql data represent problem (showing 1.12455E+10 format)oracle sql数据表示问题(显示1.12455E+10格式)
【发布时间】:2020-07-01 17:57:03
【问题描述】:

我在从 oracle SQL 表中插入和查询数据时遇到了一些问题。我的表名是 Table_Name 它有两个列名(id 号,密码 varchar2)。我很好地进行了插入操作,但是当我查询数据时,它是“1.14662E+10”这种格式。 那么问题出在哪里?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    在 SQL*Plus 中,您可以设置列的格式以显示列的内容。对于你的情况,你需要这样的东西:

    column your_column_name format 9999999999
    

    上述命令中9的个数应该是你的列最大值的位数。

    见下面的例子(ROWNM 专栏):

    SQL> select * from T;
    
         ROWNM NAME            TOTAL COLUMN1
    ---------- ---------- ---------- ----------
    1.2346E+17 Tejash     ########## test
    
    SQL> column rownm format 999999999999999999
    SQL>
    SQL> select * from T;
    
                  ROWNM NAME            TOTAL COLUMN1
    ------------------- ---------- ---------- ----------
     123456789123456789 Tejash     ########## test
    
    SQL>
    

    【讨论】:

      【解决方案2】:

      数据已正确存储,这只是客户端程序(此处为 SQL*Plus)显示数据的方式的问题。

      正如已经回答的,您可以使用 SQL*Plus 格式化命令或使用 TO_CHAR 函数:

      SQL> select x from t;
      
           X
      ----------
           1
      1234567890
      1.2346E+19
      
      SQL> select to_char(x) from t;
      
      TO_CHAR(X)
      ------------------------------------------------------------------------------------------------------------------------
      1
      1234567890
      12345678901234567890
      
      SQL> 
      

      【讨论】:

        【解决方案3】:

        如果您有多个大量列并且不想将它们全部设置为column,则可以使用 SQL*Plus(以及 SQLcl 和 SQL Developer)的另一个技巧。数字有一个默认的显示宽度,超出该大小,格式将更改为科学计数法;但你可以改变它:

        SQL> show numwidth
        numwidth 10
        SQL> select 12345, 123456789123456789 from dual;
        
             12345 123456789123456789
        ---------- ------------------
             12345         1.2346E+17
        
        SQL> set numwidth 20
        SQL> select 12345, 123456789123456789 from dual;
        
                       12345   123456789123456789
        -------------------- --------------------
                       12345   123456789123456789
        
        SQL>
        

        如您所见,它会影响所有数字列,即使是较小的数字也是如此 - 因此它是一种更广泛的方法,并且比单独的 column 设置更具针对性,但这有时会很有用。

        您还可以使用set numformat 进行更多涉及的格式化,例如添加组分隔符。 Read more about set options in the documentation.

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-29
          • 2015-07-31
          • 1970-01-01
          相关资源
          最近更新 更多