oracle下decimal和number的区别

2025-05-23 03:25:17
推荐回答(2个)
回答1:

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比较好

回答2:

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