十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Oracle number datatype 语法:NUMBER[(precision [, scale])]
创新互联公司主营灌阳网站建设的网络公司,主营网站建设方案,成都app软件开发公司,灌阳h5小程序制作搭建,灌阳网站营销推广欢迎灌阳等地区企业咨询
简称:precision -- p scale -- s
NUMBER(p,s)
范围: 1 = p =38, -84 = s = 127
保存数据范围:-1.0e-130 = number value 1.0e+126
保存在机器内部的范围: 1 ~ 22 bytes
有效位:从左边第一个不为0的数算起的位数。
s的情况:
s 0
精确到小数点右边s位,并四舍五入。然后检验有效位是否 = p。
s 0
精确到小数点左边s位,并四舍五入。然后检验有效位是否 = p + |s|。
s = 0
此时NUMBER表示整数。
从而,Oracle可以存储、可以运算的最大整数是 1e126 -1 。
declare
n number:=0;
begin
for i in REVERSE 1..125 loop
n := n + 9*power(10,i);
dbms_output.put_line(i || '--' || n);
end loop;
insert into tt(id)values(n);
commit;
end;
/
经实际验证,的确可以存放1e126-1,但无法查看,也无法参与运算。
38代表总位数 3代表小数点后面位数
number(p,s)
p:1~38
s:-84~127
p0,对s分2种情况:1. s0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否=p;如果sp,小数点右边至少有s-p个0填充。
2. s0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否=p+|s|
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
123456789 NUMBER(5,-4) 123460000
1234567890 NUMBER(5,-4) Error
12345.58 NUMBER(*, 1) 12345.6
0.1 NUMBER(4,5) Error
0.01234567 NUMBER(4,5) 0.01235
0.09999 NUMBER(4,5) 0.09999
扩展资料
ORACLE数据库字段类型说明:
目前Oracle 数据库大概有26个字段类型,大体分为六类,分别是字符串类型、数字数据类型、日期时间数据类型、大型对象(LOB)数据类型、RAW和LONG RAW数据类型、ROWID和UROWID数据类型。
oracle字段类型限制与误区。
char(byte)
固定长度字符串 最大长度2000字节。
varchar2(byte)
默认的表示方式,比如:varchar2(100),就相当于varchar2(100 byte),表示最大字节数是100,该字段最多能容纳100个字节,强调空间大小。
保存汉字等字符时,就要小心了。如果你的数据库用的是GBK编码,那么一个汉字将占用2个字节,最多能存50个汉字,如果你的数据库用的是UTF8编码,那么一个汉字将占用3个字节,最多能存33个汉字。
varchar2(char)
表示最大字符数是100,该字段最多能容纳100个字符,强调个数。假设varchar2(100 char),那么无论是数字、字母、汉字,都看成一个字符,最多写100个。
当然,汉字越多,占用的空间越大,同样遵循上边的数据库编码原则。例如:存入一个汉字,底层占2或3个字节,存入一个字母,占1个字节。
nvarchar2()
没有byte、char之分,类似于varchar2(char),只不过nvarchar2()屏蔽了数据库编码,无论是何种编码,nvarchar2()中一个汉字都占两个字节。
需要注意的是:
无论是varchar2还是nvarchar2,最大字节数都是4000.所以varchar(2000 char),当存入2000个汉字时,这时的总字节为6000(utf-8)。
但是最大的字节数为4000,这时多余的字节数就会被截取掉。
所以,对于GBK编码的数据库而言,安全的写法为:varchar2(2000 char)、nvarchar2(2000),对于UTF8编码的数据库而言,安全的写法为:varchar2(1333 char)、nvarchar2(2000)。
意思是:Number(p)是声明一个整数,最多有10位有效数字,1位小数。
number(4,3)是表示这个数一共有4位是有效位,后面的3表示有3个是小数也就是这个数只能是1.234,这样格式的最大只能是9.999。
number(3,4)表示这个数有效位数是3位但是有四位小数也就是只能是这个格式0.0123最大只能是0.0999。
扩展资料
Number类型的用法
p(precision)为精度,精度最大值为38;
s(scale)表示小数点右边的数字个数,scale的取值范围为-84到127;
因此,Number(p)即是声明一个整数,相当于Number(p,0),即等同于int型;
例子:
Number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
Number(8)存储总长度为8的整数。