oracle的number类型0开头,oracle中number类型说明

本文详细解析Oracle NUMBER数据类型,包括其语法(precision,scale),数值范围、存储和有效位数规则,以及示例中的不同类型设置对数据的影响。特别关注了小数点位置、精度控制和自增列的使用实例。
摘要由CSDN通过智能技术生成

1>.NUMBER类型细讲:

Oracle number datatype 语法:NUMBER[(precision [, scale])]

简称: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表示整数。

eg:

Actual Data   Specified As  Stored As

----------------------------------------

123.89           NUMBER         123.89

123.89           NUMBER(3)     124

123.89           NUMBER(6,2)   123.89

123.89           NUMBER(6,1)   123.9

123.89           NUMBER(4,2)   exceeds precision (有效位为5, 5 > 4)

123.89           NUMBER(6,-2)  100

.01234           NUMBER(4,5)   .01234 (有效位为4)

.00012           NUMBER(4,5)   .00012

.000127       NUMBER(4,5)   .00013

.0000012      NUMBER(2,7)   .0000012

.00000123     NUMBER(2,7)   .0000012

1.2e-4           NUMBER(2,5)   0.00012

1.2e-5           NUMBER(2,5)   0.00001

123.2564      NUMBER        123.2564

1234.9876     NUMBER(6,2)   1234.99

12345.12345   NUMBER(6,2)   Error (有效位为5+2 > 6)

1234.9876     NUMBER(6)     1235 (s没有表示s=0)

12345.345     NUMBER(5,-2)  12300

1234567       NUMBER(5,-2)  1234600

12345678      NUMBER(5,-2)  Error (有效位为8 > 7)

123456789     NUMBER(5,-4)  123460000

1234567890    NUMBER(5,-4)  Error (有效位为10 > 9)

12345.58      NUMBER(*, 1)  12345.6

0.1           NUMBER(4,5)   Error (0.10000, 有效位为5 > 4)

0.01234567    NUMBER(4,5)   0.01235

0.09999       NUMBER(4,5)   0.09999

创建自增列的SQL,先创建序列

CREATE SEQUENCE   "ROLEIDSEQ"  MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 NOCACHE  NOORDER  NOCYCLE

bc69a0c18fc82b77df5e30c2b73b2f2d.png

a8830aa3e473f1afdd8e7f5631fb8b5a.png

Code

CREATETABLE"ROLE"

(    "ID"NUMBER(9,0)NOTNULLENABLE,

"NAME"VARCHAR2(20),

"DESCRIPTION"VARCHAR2(64),CONSTRAINT"ROLE_PK"PRIMARYKEY("ID") ENABLE

)/CREATEORREPLACETRIGGER"BI_ROLE"

beforeinserton"ROLE"foreach rowbeginselect"ROLEIDSEQ".nextvalinto:NEW.IDfromdual;end;/ALTERTRIGGER"BI_ROLE" ENABLE/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值