- 有小數點的數字
Number(p,s)
p:整體精確數位(1~38位)
s:小數點位數(-84到127, 正表示小數位數,負則是小數點往左邊取0的位數
雖然selectt出的資料是依據整數位和精確數,但Oracle仍會以變動長度完全儲存所輸入的值 - 整數
Number(p)
p:同上 - 在最大整數位和精確度下儲存資料
Number
但FLOAT 資料型態: 精確數 p = 二進制的 精確數 (必須乘上 0.30103 轉換)
所以 FLOAT = FLOAT (126) = 126 x 0.30103 = 約 37.9 位 精確數.
以下是一些例子
假設我們有一數字7456123.89 以下宣告將Select時顯示不同輸出 NUMBER 7456123.89 NUMBER(9) 7456124 NUMBER(9,1) 7456123.9 NUMBER(*,1) 7456123.9 NUMBER(9,2) 7456123.89 NUMBER(6) [不允許輸入因超過整數位數] NUMBER(7,-2) 7456100 FLOAT 7456123.89 FLOAT(12) 7456000.0
參考
http://ss64.com/ora/syntax-datatypes.html
呃, 抱歉, oracle 的文件中, number 的 p 似乎應該是 total number of digits, 也就總共的數值個數 ?
回覆刪除https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832