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比较好
Numberic 数据类型用来存储负的和正的整数、分数和浮点型数据,范围在-1*10-103 和9.999…99*10125之间,有38位的精确度。标识一个数据超出这个范围时就会出错。
Number( p,s) Number数据类型存储一个有p位精确度的s位等级的数据。