4 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊
numeric和decimal 是標(biāo)準(zhǔn)sql的數(shù)據(jù)類(lèi)型,格式是numeric(m,n)
而number是oracle的特殊的類(lèi)型,有number,number(m,n)的格式。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
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;
因?yàn)镈ECIMAL在沒(méi)有指定小數(shù)位的時(shí)候,將其默認(rèn)設(shè)置為0,而NUMBER不會(huì)做這樣處理,所以在過(guò)程和函數(shù)里面還是用number比較好

TA貢獻(xiàn)1779條經(jīng)驗(yàn) 獲得超6個(gè)贊
Numberic 數(shù)據(jù)類(lèi)型用來(lái)存儲(chǔ)負(fù)的和正的整數(shù)、分?jǐn)?shù)和浮點(diǎn)型數(shù)據(jù),范圍在-1*10-103 和9.999…99*10125之間,有38位的精確度。標(biāo)識(shí)一個(gè)數(shù)據(jù)超出這個(gè)范圍時(shí)就會(huì)出錯(cuò)。
Number( p,s) Number數(shù)據(jù)類(lèi)型存儲(chǔ)一個(gè)有p位精確度的s位等級(jí)的數(shù)據(jù)。

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