欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

在oracle中number類型的字段長度是什么意思

謝彥文2年前21瀏覽0評論

在oracle中number類型的字段長度是什么意思?

oracle中的number類型

number (precision,scale)

a) precision表示數字中的有效位,如果沒有指定precision的話,oracle將使用38作為精度;

b) 如果scale大于零,表示數字精度到小數點右邊的位數;scale默認設置為0;如果scale小于零,oracle將把該數字取舍到小數點左邊的指定位數。

c) Precision 的取值范圍是[1-38];scale的取值范圍是[-84-127].

d) Number整數部分允許的長度為(precision –scale),無論scale是正數還是負數。

e) 如果precision小于scale,表示存儲的是沒有正數的小數。

f) Precision表示有效位數,有效數位:從左邊第一個不為0的數算起,小數點和負號不計入有效位數;scale表示精確到多少位,指精確到小數點左邊還是右邊多少位(由+-決定)。

g) Number值類型舉例:

a) 關于precision,scale也可以做如下表述:

定點數的精度(p)和刻度(s)遵循以下規則:

1) 當一個數的整數部分長度 >p-s時,oracle就會報錯;

2) 當一個數的小數部分的長度 >s時,oracle就會舍入;

3) 當s(scale)為負數時,oracle就會對小數點左邊的s進行舍入;

4) 當s > p 時, p表示小數點后第s位向左最多可以有多少位數字,如果大于p則Oracle報錯,小數點后s位向右的數字被舍入。

Number類型的子類:

a) Oracle本來就沒有int類型,為了與別的數據庫兼容,新增了Int類型作為number類型的子集;

b) Int類型只能存儲整數,number可以存儲浮點數,也可以存整數。

c) 在oracle數據庫建表的時候,Decimal,numeric不帶精度,oralce會自動把它處理成integer;帶精度,oracle會自動把它處理成number。

d) Oracle只用number(m,n)就可以表示任何復雜的數字數據。

Decimal,numeric,int等都為sql,db2等數據庫的數據類型,Oracle為了兼容才將其引入;但實際上在oracle內部還是以number的形式將其存入的。