如何理解Number(p,s)的意义呢?

clever101
博客专家认证
2008-04-05 01:49:32
有这样一个例子:
SQL> create table test (id number(5,2));

表已创建。

SQL> insert into test values (234.45);

已创建 1 行。

SQL> insert into test values (1234.5);
insert into test values (1234.5)
*
ERROR 位于第 1 行:
ORA-01438: 值大于此列指定的允许精确度

为什么插入1234.5会出错呢? 我猜测原因是这样的:1234.5的存贮值是1234.50,但是1234.50的有效位数是6位,超过了规定的有效位数5位,是不是这样呢?
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
chengjian2008 2008-04-07
  • 打赏
  • 举报
回复
number(5,2)表示总位数为5位,小数点占2位,整数占3位.
sulins 2008-04-07
  • 打赏
  • 举报
回复
number(5,2)

精度5位,小数位2位。

iwlk 2008-04-07
  • 打赏
  • 举报
回复
靠,还能这样算....
softfwind 2008-04-07
  • 打赏
  • 举报
回复
number(5,2)
前面的5表示总位数,后面的2表示小数点后的位数
hiairfly 2008-04-05
  • 打赏
  • 举报
回复
NUMBER(5,2)只能存储-999.99~999.99之间的所有值
HelloWorld_001 2008-04-05
  • 打赏
  • 举报
回复
BAIDU
number(5,2)
整数只能是3位,小数是2位
1234.5整数已经4了,所以错了

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧