【问题标题】:Why does the range of datatype number in oracle database is 38?为什么oracle数据库中数据类型编号的范围是38?
【发布时间】:2020-12-02 22:33:04
【问题描述】:

我阅读了 oracle 文档,数据库中数据类型“数字”的范围是 38,这是最大范围。

我用谷歌搜索,除了 38 是业力法则,守护天使之外找不到任何东西......

你介意解释一下为什么数字的范围是 38 吗?

谢谢!

【问题讨论】:

    标签: oracle sqldatatypes


    【解决方案1】:

    这是精确度(与业力天使无关:))。

    Documentation 表示号码的格式是NUMBER [ (p [, s]) ]

    具有精度 p 和标度 s 的数字。精度 p 的范围可以从 1 到 38。标度 s 的范围可以从 -84 到 127。精度和标度都是十进制数字。 NUMBER 值需要 1 到 22 个字节。

    精度是数字中的位数。例如,数字123.455 位数,因此其精度为5

    刻度是小数点右边的位数;在本例中,45 生成了 2 数字,因此比例为 2

    这意味着(如果我们假设数字看起来像那样)您创建的表看起来像

    create table (some_value   NUMBER (5, 2));   --> precision 5, scale 2
    

    如果您违反精度,Oracle 将引发错误。另一方面,您可以违反规模 - 在这种情况下,Oracle 将四舍五入该值。

    【讨论】:

      猜你喜欢
      • 2010-10-20
      • 2021-08-17
      • 2019-10-27
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2017-01-22
      相关资源
      最近更新 更多