4 回答

TA貢獻1786條經驗 獲得超13個贊
numeric(10,2), 數字型,2位精度
numeric(18,5),數字型,5位精度
---你說得報錯可能是位數不夠,你把位數設大些,例如 numeric(18,2)

TA貢獻1824條經驗 獲得超6個贊
相當于java的int double類型
oracle包括三種數據類型:
1)數值:number或number(p,s)
p:精度,s:刻度(小數位數)
1234.567 number(6,2) --------> 1234.57
0.001234 number(2,4) --------> 0.0012
1234 number(3,-1)--------> 1230
1204 number(3) --------> 超出精度
2)字符:char, varchar, varchar2
char與varchar的區別:
1.內容存儲時占用的存儲空間;
定長:char (聲明固定長度)
'a' -> char(10) -> 10
'ab' -> char(10) -> 10
變長:varchar (根據實際存儲的長度為準)
'a' -> varchar(10) -> 1
'ab' -> varchar(10) -> 2
2.所允許存儲的最大長度;
char: 2000
varchar: 4000
varchar與varchar2的區別:
1.制定廠商不同:
varchar:ANSI
varchar2:Oracle
2.承諾不同;
3)日期:date '01-JAN-08'
世紀,年,月,日,時,分,秒

TA貢獻1863條經驗 獲得超2個贊
38代表總位數 3代表小數點后面位數
number(p,s)
p:1~38
s:-84~127
p>0,對s分2種情況:1. s>0
精確到小數點右邊s位,并四舍五入。然后檢驗有效數位是否<=p;如果s>p,小數點右邊至少有s-p個0填充。
2. s<0
精確到小數點左邊s位,并四舍五入。然后檢驗有效數位是否<=p+|s|
123.2564 NUMBER 123.2564
1234.9876 NUMBER(6,2) 1234.99
12345.12345 NUMBER(6,2) Error
1234.9876 NUMBER(6) 1235
12345.345 NUMBER(5,-2) 12300
1234567 NUMBER(5,-2) 1234600
12345678 NUMBER(5,-2) Error
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
擴展資料
oracle中數據類型number(m,n)中m表示的是所有有效數字的位數,n表示的是小數位的位數。m的范圍是1-38,即最大38位。
1> .NUMBER類型細講:
Oracle number datatype 語法:NUMBER[(precision [, scale])]
簡稱:precision --> p
scale --> sNUMBER(p, s)
范圍: 1 <= p <= 38,
-84 <= s <= 127
保存數據范圍: -1.0e-130 <= number value < 1.0e+126
保存在機器內部的范圍: 1 ~ 22 bytes有效位:從左邊第一個不為0的數算起的位數。
s的情況:
s > 0 ,精確到小數點右邊s位,并四舍五入。然后檢驗有效位是否 <= p。
s < 0 ,精確到小數點左邊s位,并四舍五入。然后檢驗有效位是否 <= p + |s|。
s = 0 ,此時NUMBER表示整數。
添加回答
舉報