Oracle中的数字的默认精度和比例是多少?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

在Oracle中创建NUMBER类型的列时,你可以选择不指定精度或比例。如果你不指定它们,这些默认值会做什么?

提问于
用户回答回答于

NUMBER(精度,比例)

如果未指定精度,则列将按给定值存储值。如果未指定比例,则比例为零。

用户回答回答于

NUMBER类型可以用不同的样式指定:

                由此产生的精度
规范精确度量检查评论
―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――
NUMBER NULL NULL NO          '最大范围精度',
                                                 值被存储为'给定'
NUMBER(P,S)PS是错误代码:ORA-01438
NUMBER(P)P 0是错误代码:ORA-01438
NUMBER(*,S)38 S NO

精度是总数位数,标尺是小数点左侧或右侧(负刻度)的位数。

Oracle将ORA-01438指定为

值大于该列所允许的指定精度

如表中所述,如果明确指定了精度,则此完整性检查仅处于活动状态。否则,Oracle会使用某种未指定的方法静静地四舍五入插入或更新的值。

扫码关注云+社区