4 回答

TA貢獻1862條經(jīng)驗 獲得超7個贊
oracle下decimal和number的區(qū)別主要在函數(shù)返回值上面
create or replace function test_decimal
return
decimal
is
Result decimal(12,2);
begin
Result := 1234567890.99;
return Result;
end test_decimal;
/
create or replace function test_number
return
number
is
Result number(12,2);
begin
Result := 1234567890.99;
return Result;
end test_number;
/
SELECT test_decimal(), test_number() FROM DUAL;
因為DECIMAL在沒有指定小數(shù)位的時候,將其默認設(shè)置為0,而NUMBER不會做這樣處理,所以在過程和函數(shù)里面還是用number比較好

TA貢獻1779條經(jīng)驗 獲得超6個贊
Numberic 數(shù)據(jù)類型用來存儲負的和正的整數(shù)、分數(shù)和浮點型數(shù)據(jù),范圍在-1*10-103 和9.999…99*10125之間,有38位的精確度。標識一個數(shù)據(jù)超出這個范圍時就會出錯。
Number( p,s) Number數(shù)據(jù)類型存儲一個有p位精確度的s位等級的數(shù)據(jù)。

TA貢獻1796條經(jīng)驗 獲得超4個贊
oracle包括三種數(shù)據(jù)類型:
1)數(shù)值:number或number(p,s)
p:精度,s:刻度(小數(shù)位數(shù))
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的區(qū)別:
1.內(nèi)容存儲時占用的存儲空間;
定長:char (聲明固定長度)
'a' -> char(10) -> 10
'ab' -> char(10) -> 10
變長:varchar (根據(jù)實際存儲的長度為準)
'a' -> varchar(10) -> 1
'ab' -> varchar(10) -> 2
2.所允許存儲的最大長度;
char: 2000
varchar: 4000
varchar與varchar2的區(qū)別:
1.制定廠商不同:
varchar:ANSI
varchar2:Oracle
2.承諾不同;
3)日期:date '01-JAN-08'
世紀,年,月,日,時,分,秒
添加回答
舉報