sql - Oracle 中 Number 列的默认 Scale 值

标签 sql oracle sqldatatypes

Oracle Docs提到默认精度值为38,小数位数为0。

If a precision is not specified, the column stores values as given. If no scale is specified, the scale is zero.

但那里提到的表格(表 26-1)与声明相矛盾。

 Input Data   | Specified As  | Stored As  

 7,456,123.89 |  NUMBER       | 7456123.89

如果默认比例为 0(小数点右边的位数),那么上面的数字如何存储为 2 个小数位。即 .89 还是我完全误解了默认比例的概念?

最佳答案

考虑四种不同的情况可能会更有帮助:

  • 无精度或小数位数 NUMBER
  • 精度和无刻度 NUMBER(9)
  • 精度和小数位数 NUMBER(9,2)
  • 仅缩放 NUMBER(*,2)

引用...

If no scale is specified, the scale is zero.

...指的是其中的第二个,其中指定了精度但没有指定比例,而不是第一个。

关于sql - Oracle 中 Number 列的默认 Scale 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44839328/

相关文章:

sql - Postgres 中的 NOCYCLE

空值上的 SQL "Join"

sql - 按字段排序,以字母开头

sql - 无法将 View 列的数据类型从数字更改为数字(4,1)

sql - 使用 Union with Insert 添加一行

sql - 如何在 MS Access 中仅查看第一个值,其余为空白?

java - 是否可以合并这两个查询?

php - 在 foreach 循环内运行第二个查询?

mysql - BIGINT 有符号与无符号

mysql - 如何确定 MySQL Checksum 列的类型?