Oracle -小数位数大于精度的NUMBER类型声明[重复]

hgc7kmma  于 2023-10-16  发布在  Oracle
关注(0)|答案(1)|浏览(136)

此问题已在此处有答案

What is the difference between precision and scale?(8个回答)
上个月关门了。
我有一个包含几个NUMBER(precision, scale)列的表:

CREATE TABLE num_test
(
    n1 NUMBER(1, 0),
    n2 NUMBER(2, 0),
    n3 NUMBER(2, 1),
    n4 NUMBER(3, 1),
    n5 NUMBER(3, 2),
    n6 NUMBER(4, 3),
    n7 NUMBER(5, 4),
    n8 NUMBER(6, 4),
    n9 NUMBER(6, 4),
    n10 NUMBER(10, 5),
    n11 NUMBER(10, 9)
);

样本数据:

问题:

Oracle允许指定一个数字,其中scale >= precision,即

  • NUMBER(1, 5)
  • NUMBER(5, 5)

似乎不可能有一个精度为1,比例为5的数字。这类数字的一个例子是什么?

相关:

vlju58qv

vlju58qv1#

在他们的数据类型文档中写得很清楚:
比例可以大于精度,最常见的是使用e表示法。当小数位数大于精度时,精度指定小数点右侧的最大有效位数。例如,定义为NUMBER(4,5)的列要求小数点后的第一位数字为零,并对小数点后第五位数字之后的所有值进行四舍五入。
https://docs.oracle.com/en/database/oracle/oracle-database/21/sqlrf/Data-Types.html

相关问题