有这样一个例子:
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位,是不是这样呢?

解决方案 »

  1.   

    BAIDU
    number(5,2) 
    整数只能是3位,小数是2位
    1234.5整数已经4了,所以错了
      

  2.   

    NUMBER(5,2)只能存储-999.99~999.99之间的所有值
      

  3.   

     number(5,2)表示总位数为5位,小数点占2位,整数占3位.
      

  4.   

    number(5,2)
    前面的5表示总位数,后面的2表示小数点后的位数
      

  5.   

    number(5,2)精度5位,小数位2位。