有这样一个例子:
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位,是不是这样呢?
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位,是不是这样呢?
number(5,2)
整数只能是3位,小数是2位
1234.5整数已经4了,所以错了
前面的5表示总位数,后面的2表示小数点后的位数