【问题标题】:Oracle spool format issueOracle 假脱机格式问题
【发布时间】:2017-06-04 06:28:47
【问题描述】:

我正在使用 oracle spool 将 oracle 表数据导出到 excel 文件,它包含 15 位数字,但它显示如下而不是 981239712396123

9.81239E+18

如何仅显示 15 个字符长度而不是指数值的文本?

【问题讨论】:

    标签: oracle11g sqlplus spool


    【解决方案1】:

    您需要将脚本中的 numwidth 设置为正确的宽度,以便以非科学记数法显示您的数字。这是一个简短的演示:

    SQL> set numwidth 7
    SQL> select 12345678 from dual;
    
    12345678
    --------
     1.2E+07
    
    SQL> set numwidth 8
    SQL> /
    
    12345678
    --------
    12345678
    

    或者,您可以格式化单个列,这将覆盖 numwidth 设置,例如:

    SQL> set numwidth 7
    SQL> col col1 format 999999999
    SQL> select 12345678 col1 from dual;
    
          COL1
    ----------
      12345678
    

    【讨论】:

    • 谢谢。如何为特定列设置 numwidth?
    • 我已经更新了我的答案以包含数字的列特定格式方法
    • spool 到 excel 时仍然显示指数值
    • 您不会“假脱机到 excel” - 您假脱机到文本文件。如果文件中的数据显示正确,则问题不在于 SQL*Plus,而在于 Excel 中的格式设置。您需要根据自己的喜好调整 Excel 中的格式。
    • 文本工作正常。我必须在 Excel 中显示以进行报告
    猜你喜欢
    • 2018-05-22
    • 1970-01-01
    • 2011-02-03
    • 2011-01-07
    • 2012-11-21
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多