number
数值类型,是一种变长类型,长度为0-22字节。
存储的数值的精度可以达到38位。
number(p,s)
P和s都是可选的。
P指精度(precision),即总位数。默认情况下精度为38。精度的取值范围为1~38.
S指小数位(scale),小数点右边的位数。小数点位数的合法值为-48~127。小数位的默认值由精度来决定。
如果指定了精度,没有指定小数位,小数位默认为0(即没有小数位)。
演示
SQL>create table test_number(col_number number(6,2));
insert into test_number values(-1);
insert into test_number values(0);
insert into test_number values(1);
insert into test_number values(2);
insert into test_number values(11.00);
insert into test_number values(11.11);
insert into test_number values(1234.12);
insert into test_number values(1234.122);
insert into test_number values(1234.125);
insert into test_number values(-0.1);
insert into test_number values(-11.11);
insert into test_number values(-1234.12);
insert into test_number values(9999.99);
insert into test_number values(9998.999);
SQL>select * from test_number;

显示每行存储结构
SQL> select col_number, dump(col_number) from test_number;

number是一个变长类型。不同的数值占用不同的空间
对小数存储时,它并没有一个小数的标志位
小数位告诉系统保留多少位小数,从哪里开始舍入。
精度从舍入的位置开始,数值中允许有多少位。

本文详细解析了Number数据类型的特性,包括其变长属性、存储精度、小数位数及精度的概念。通过具体实例展示了不同数值如何占用不同空间,以及小数位数如何影响数值的舍入和存储。
3695

被折叠的 条评论
为什么被折叠?



