Oracle數(shù)字的3種基本類型介紹
Oracle數(shù)字的3種基本Oracle Number類型,即 ,NUMBER、BINARY_INTENER與PLS_INTEGER。NUMBER的主要功能是用來描述相關(guān)整數(shù)或是實(shí)數(shù),但是PLS_INTEGER與BINARY_INTENER只能來描述整數(shù)。
NUMBER,是以十進(jìn)制格式進(jìn)行存儲(chǔ)的,它便于存儲(chǔ),但是在計(jì)算上,系統(tǒng)會(huì)自動(dòng)的將它轉(zhuǎn)換成為二進(jìn)制進(jìn)行運(yùn)算的。它的定義方式是NUMBER(P,S),P是精度,***38位,S是刻度范圍,可在-84127間取值。例如:NUMBER(5,2)可以用來存儲(chǔ)表示-999.99999.99間的數(shù)值。P、S可以在定義是省略,例如:NUMBER(5)、NUMBER等;
BINARY_INTENER用來描述不存儲(chǔ)在數(shù)據(jù)庫(kù)中,但是需要用來計(jì)算的帶符號(hào)的整數(shù)值。它以2的補(bǔ)碼二進(jìn)制形式表述。循環(huán)計(jì)數(shù)器經(jīng)常使用這種Oracle Number類型。
PLS_INTEGER和BINARY_INTENER唯一區(qū)別是在計(jì)算當(dāng)中發(fā)生溢出時(shí),BINARY_INTENER型的變量會(huì)被自動(dòng)指派給一個(gè)NUMBER型而不會(huì)出錯(cuò),PLS_INTEGER型的變量將會(huì)發(fā)生錯(cuò)誤。
☆Number補(bǔ)充 在Oracle Number類型可以用來存儲(chǔ)0,正負(fù)定點(diǎn)或者浮點(diǎn)數(shù),可表示的數(shù)據(jù)范圍在 1.0 * 10(-130) —— 9.99 * 10(125) {38個(gè)9后邊帶88個(gè)0} 的Oracle數(shù)字,當(dāng)Oracle中的數(shù)學(xué)表達(dá)式的值>=1.0*10(126)時(shí),Oracle就會(huì)報(bào)錯(cuò)。
Number的數(shù)據(jù)聲明如下:
1)Number(p, s) 聲明一個(gè)定點(diǎn)數(shù) p(precision)為精度,s(scale)表示小數(shù)點(diǎn)右邊的Oracle數(shù)字個(gè)數(shù),精度***值為38,scale的取值范圍為-84到127
2)Number(p) 聲明一個(gè)整數(shù) 相當(dāng)于Number(p, 0)
3)Number 聲明一個(gè)浮點(diǎn)數(shù) 其精度為38,要注意的是scale的值沒有應(yīng)用,也就是說scale的指不能簡(jiǎn)單的理解為0,或者其他的數(shù)。
定點(diǎn)數(shù)的精度(p)和刻度(s)遵循以下規(guī)則:
當(dāng)s>0時(shí)(s表示小數(shù)點(diǎn)右邊的數(shù)字的個(gè)數(shù)):
當(dāng)一個(gè)數(shù)的整數(shù)部分的長(zhǎng)度 > p-s 時(shí),Oracle就會(huì)報(bào)錯(cuò)
當(dāng)一個(gè)數(shù)的小數(shù)部分的長(zhǎng)度 > s 時(shí),Oracle就會(huì)舍入。
當(dāng)s<0時(shí)(s表示小數(shù)點(diǎn)左邊的數(shù)字的個(gè)數(shù)):
Oracle就對(duì)小數(shù)點(diǎn)左邊的s個(gè)數(shù)字進(jìn)行舍入。
當(dāng)s > p 時(shí), p表示小數(shù)點(diǎn)后第s位向左最多可以有多少位Oracle數(shù)字,如果大于p則Oracle報(bào)錯(cuò),小數(shù)點(diǎn)后s位向右的數(shù)字被舍入例如:
Value-->Datatype-->Stored Value
123.2564-->NUMBER-->123.2564(不限制)
1234.9876-->NUMBER(6,2)-->1234.99(精確到小數(shù)點(diǎn)后兩位)
12345.12345-->NUMBER(6,2)-->Error(小數(shù)點(diǎn)左邊的有效數(shù)字長(zhǎng)度5+小數(shù)點(diǎn)右邊的有效Oracle數(shù)字長(zhǎng)度2>規(guī)定精度6)
1234.9876-->NUMBER(6)-->1235 (等價(jià)于NUMBER(6,0))
12345.345-->NUMBER(5,-2)-->12300 (小數(shù)點(diǎn)左邊兩位做四舍五入)
12345678-->NUMBER(5,-2)-->Error (8-2>5)
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
0.099996-->NUMBER(4,5)-->Error
以上的相關(guān)內(nèi)容就是對(duì)Oracle 數(shù)字類型的介紹,望你能有所收獲。
【編輯推薦】