4 回答

TA貢獻1862條經驗 獲得超7個贊
oracle下decimal和number的區別主要在函數返回值上面
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在沒有指定小數位的時候,將其默認設置為0,而NUMBER不會做這樣處理,所以在過程和函數里面還是用number比較好

TA貢獻1796條經驗 獲得超4個贊
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'
世紀,年,月,日,時,分,秒
添加回答
舉報