欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle Number型的深入理解

 更新時(shí)間:2013年05月31日 09:00:53   作者:  
本篇文章是對Oracle中Number型進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
NUMBER數(shù)據(jù)類型
NUMBER ( precision, scale)
a)  precision表示數(shù)字中的有效位;如果沒有指定precision的話,Oracle將使用38作為精度。
b)  如果scale大于零,表示數(shù)字精確到小數(shù)點(diǎn)右邊的位數(shù);scale默認(rèn)設(shè)置為0;如果scale小于零,Oracle將把該數(shù)字取舍到小數(shù)點(diǎn)左邊的指定位數(shù)。
c)  Precision的取值范圍為【1---38】;Scale的取值范圍為【-84---127】。
d)  NUMBER整數(shù)部分允許的長度為(precision- scale),無論scale是正數(shù)還是負(fù)數(shù)。
e)  如果precision小于scale,表示存儲的是沒有整數(shù)的小數(shù)。
f)  Precision表示有效位數(shù),有效數(shù)位:從左邊第一個(gè)不為0的數(shù)算起,小數(shù)點(diǎn)和負(fù)號不計(jì)入有效位數(shù);scale表示精確到多少位,指精確到小數(shù)點(diǎn)左邊或右邊多少位(+-決定)。
g)  Number值類型舉例:

實(shí)際值

數(shù)據(jù)類型

存儲值

1234567.89

Number

1234567.89

1234567.89

Number(8)

1234567

1234567.89

Number(6)

出錯(cuò)

1234567.89

Number(9,1)

1234567.9

1234567.89

Number(9,3)

出錯(cuò)

1234567.89

Number(7,2)

出錯(cuò)

1234567.89

Number(5,-2)

1234600

1234511.89

Number(5,-2)

1234500

1234567.89

Number(5,-4)

1230000

1234567.89

Number(*,1)

1234567.9

0.012

Number(2,3)

0.012

0.23

Number(2,3)

出錯(cuò)


h)  關(guān)于precision, scale也可以作如下表述
定點(diǎn)數(shù)的精度(p)和刻度(s)遵循以下規(guī)則:
1)  當(dāng)一個(gè)數(shù)的整數(shù)部分的長度 > p-s 時(shí),Oracle就會(huì)報(bào)錯(cuò)
2)  當(dāng)一個(gè)數(shù)的小數(shù)部分的長度 > s 時(shí),Oracle就會(huì)舍入。
3)  當(dāng)s(scale)為負(fù)數(shù)時(shí),Oracle就對小數(shù)點(diǎn)左邊的s個(gè)數(shù)字進(jìn)行舍入。
4)  當(dāng)s > p 時(shí), p表示小數(shù)點(diǎn)后第s位向左最多可以有多少位數(shù)字,如果大于p則Oracle報(bào)錯(cuò),小數(shù)點(diǎn)后s位向右的數(shù)字被舍入

NUMBER類型的子類
a)  oracle本來就沒有int類型,為了與別的數(shù)據(jù)庫兼容,新增了int類型作為number類型的子集。
b)  int類型只能存儲整數(shù);number可以存儲浮點(diǎn)數(shù),也可以存儲整數(shù)。
c)  在oracle數(shù)據(jù)庫建表的時(shí)候,decimal,numeric不帶精度,oracle會(huì)自動(dòng)把它處理成INTEGER;帶精度,oracle會(huì)自動(dòng)把它處理成number。
d)  Oracle只用NUMBER(m,n)就可以表示任何復(fù)雜的數(shù)字?jǐn)?shù)據(jù)。
e)  decimal,numeric,int等都為SQL、DB2等數(shù)據(jù)庫的數(shù)據(jù)類型,ORACLE為了兼容才將其引入;但實(shí)際上在ORACLE內(nèi)部還是以NUMBER的形式將其存入。

相關(guān)文章

最新評論