7 回答

TA貢獻1777條經驗 獲得超10個贊
number屬于oracle內置數據類型 plsql也是兼容的
NUMBER ( precision, scale)
precision表示數字中的有效位。如果沒有指定precision的話,Oracle將使用38作為精度。
scale表示數字小數點右邊的位數,scale默認設置為0. 如果把scale設成負數,Oracle將把該數字取舍到小數點左邊的指定位數。
integer是準屬于plsql的數據類型 一般我們使用 pls_integer

TA貢獻1802條經驗 獲得超4個贊
number類型就是包括了所有的數字類型??梢允莍nteger也可以是numeric
Oracle數據類型之number
oracle的number類型是oracle的內置類型之一,是oracle的最基礎數值數據類型。在9iR2及其以前的版本中只支持一種適合存儲數值數據的固有數據類型,在10g以后,才出現了兩種新的數值類型,即推出本地浮點數據類型(Native Floating-Point Data Types): BINARY_FLOAT(單精度32位)和BINARY_DOUBLE(雙精度64位). 這些新數據類型都是基于IEEE二進制浮點運算標準,ANSI/IEEE?Std?754-1985 [IEEE?754],使用這些類型時要加上文字f(BINARY_FLOAT)或者d(BINARY_DOUBLE),比如2.07f、3.000094d。
number數據類型
number類型的語法很簡單:number(p,s):
p:精度位,precision,是總有效數據位數,取值范圍是38,默認是38,可以用字符*表示38。
s:小數位,scale,是小數點右邊的位數,取值范圍是-84~127,默認值取決于p,如果沒有指定p,那么s是最大范圍,如果指定了p,那么s=0。
p:is the precision,or the total number of digits. Oracle guarantees the portability of numbers with precision ranging from 1 to 38.
s:is the scale, or the number of digits to the right of the decimal point. The scale can range from -84 to 127.
number類型的p和s,與其底層存儲完全沒有關系,根本不會影響數據在磁盤上如何存儲,它只會影響允許哪些值以及數值如何舍入,你可以認為其是對數據的“編輯”。簡單的說,精度位p表示數值最多能有多少個有效數字,而小數位s表示最多能有多少位小數。換句話說,p表示一共有多少位有效數字(即小數點左邊最多有p-s位有效數字),s表示小數點右邊有s位有效數字。如number(5,2)類型的數據,就表示小數點左邊最多有3位有效數字,右邊最多有2位有效數字,加起來就是最多有5位有效數字,超過這個范圍的數字就不能正確的存儲下來,注意這里說的是不能正確存儲,但并不是不能存儲。
最高整數位數=p-s
s正數,小數點右邊指定位置開始四舍五入
s負數,小數點左邊指定位置開始四舍五入
s是0或者未指定,四舍五入到最近整數
當p小于s時候,表示數字是絕對值小于1的數字,且從小數點右邊開始的前s-p位必須是0,保留s位小數。
p>0,對s分2種情況:
1. s>0
精確到小數點右邊s位,并四舍五入。然后檢驗有效數位是否<=p;如果s>p,小數點右邊至少有s-p個0填充。
2. s<0
精確到小數點左邊s位,并四舍五入。然后檢驗有效數位是否<=p+|s|

TA貢獻1817條經驗 獲得超14個贊
沒什么影響,主要是支撐多種命名規則吧,歸根還是number數據類型,numeric,int,integer最后都被Oracle轉化成number

TA貢獻1851條經驗 獲得超4個贊
你先分清楚int和Integer的區別,就能分清int[]和Integer[]的區別了! 首先: int類型是結構Int32的別名,學C#應該知道結構是什么- - Integer是類, 結構呢他是值類型的,而類呢是引用類型的。
- 7 回答
- 0 關注
- 6671 瀏覽
添加回答
舉報