程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數字的3種基本類型介紹

Oracle數字的3種基本類型介紹

編輯:Oracle數據庫基礎

Oracle數字的3種基本Oracle Number類型,即 ,NUMBER、BINARY_INTENER與PLS_INTEGER。NUMBER的主要功能是用來描述相關整數或是實數,但是PLS_INTEGER與BINARY_INTENER只能來描述整數。

NUMBER,是以十進制格式進行存儲的,它便於存儲,但是在計算上,系統會自動的將它轉換成為二進制進行運算的。它的定義方式是NUMBER(P,S),P是精度,最大38位,S是刻度范圍,可在-84127間取值。例如:NUMBER(5,2)可以用來存儲表示-999.99999.99間的數值。P、S可以在定義是省略,例如:NUMBER(5)、NUMBER等;

BINARY_INTENER用來描述不存儲在數據庫中,但是需要用來計算的帶符號的整數值。它以2的補碼二進制形式表述。循環計數器經常使用這種Oracle Number類型。

PLS_INTEGER和BINARY_INTENER唯一區別是在計算當中發生溢出時,BINARY_INTENER型的變量會被自動指派給一個NUMBER型而不會出錯,PLS_INTEGER型的變量將會發生錯誤。

☆Number補充 在Oracle Number類型可以用來存儲0,正負定點或者浮點數,可表示的數據范圍在 1.0 * 10(-130) —— 9.99 * 10(125) {38個9後邊帶88個0} 的Oracle數字,當Oracle中的數學表達式的值>=1.0*10(126)時,Oracle就會報錯。

Number的數據聲明如下:

1)Number(p, s) 聲明一個定點數 p(precision)為精度,s(scale)表示小數點右邊的Oracle數字個數,精度最大值為38,scale的取值范圍為-84到127

2)Number(p) 聲明一個整數 相當於Number(p, 0)

3)Number 聲明一個浮點數 其精度為38,要注意的是scale的值沒有應用,也就是說scale的指不能簡單的理解為0,或者其他的數。

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

當s>0時(s表示小數點右邊的數字的個數):

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

當一個數的小數部分的長度 > s 時,Oracle就會捨入。

當s<0時(s表示小數點左邊的數字的個數):

Oracle就對小數點左邊的s個數字進行捨入。

當s > p 時, p表示小數點後第s位向左最多可以有多少位Oracle數字,如果大於p則Oracle報錯,小數點後s位向右的數字被捨入例如:

Value-->Datatype-->Stored Value

123.2564-->NUMBER-->123.2564(不限制)

1234.9876-->NUMBER(6,2)-->1234.99(精確到小數點後兩位)

12345.12345-->NUMBER(6,2)-->Error(小數點左邊的有效數字長度5+小數點右邊的有效Oracle數字長度2>規定精度6)

1234.9876-->NUMBER(6)-->1235 (等價於NUMBER(6,0))

12345.345-->NUMBER(5,-2)-->12300 (小數點左邊兩位做四捨五入)

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

以上的相關內容就是對Oracle 數字類型的介紹,望你能有所收獲。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved