【问题标题】:Toad truncating/rounding large Oracle numbers?Toad 截断/舍入大 Oracle 数字?
【发布时间】:2010-08-03 20:09:36
【问题描述】:

我们有一个带有NUMBER(20,7) 类型的“价格”字段的表。在 TOAD 中我这样做:

update mytable set price = 1234567890123.1234567;

然后我做这个选择:

select price, to_char(price) from mytable

PRICE              TO_CHAR(PRICE)
1234567890123.12   "1234567890123.1234567"

问题是,为什么 TOAD 在显示 NUMBER(20,7) 字段时会截断结果?数据显然在那里,因为它使用 to_char 打印出来。

??

【问题讨论】:

  • 不确定 TOAD,但也许有与 SQL*Plus "numformat" 设置等效的设置? (adp-gmbh.ch/ora/sqlplus/numformat.html)
  • 我的 TOAD 版本 9.1.0.62 除了可以用科学计数法显示很长的数字外没有任何选择。不太好 - 您在查询表时必须使用 TO_CHAR 选项。

标签: oracle numbers toad


【解决方案1】:

Toad 将数据网格中的数字限制为 15 位。我相信这是因为 excel 也将数字限制为 15 位(或用于限制它们)。您可以在选项 -> 数据网格 -> 数据中打开“科学计数法”,复选框以科学计数法显示大数。那可能也无济于事。

【讨论】:

  • 听起来有点像 53 位双尾有效数与 64 位整数值。丢失 3 个最低有效数字 = 丢失 ~1000 ~= 2^10,这意味着我们在 64 位中丢失了 10 位,并且正在进入 53 位领域。只是一个随机假设,我认为他们没有任何理由将整数值填充到 Double 中然后再返回。
【解决方案2】:

-> 右键单击数据网格

-> 选择“Grid Options...

-> 在“Data Grids”下选择“Data

-> 取消选中“Display large numbers in Scientific Notation

完成这些操作后,您需要再次关闭并打开TOAD。这对我有用 TOAD Version 8.6.0.38

【讨论】:

    【解决方案3】:

    我遇到了类似的问题,Toad 在网格视图中显示时截断/舍入我的数字。

    我发现通过使用 执行语句 按钮或按 F9 运行查询,将不会执行截断/舍入。

    希望对你有帮助。

    【讨论】:

    • 这对 em 也有影响,但是,如果我正在运行脚本/PL/SQL,那么这不是一个选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 2010-10-13
    • 2021-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多