新建一个表create table emp(empno int,amount number(19,4));
插入一条记录insert into emp(1,123456789012345.1234);
查询刚才插入的记录,显示amount的值为123456789012345.0000
请问这是什么原因呢?
我试了一下,小数点前面的整数最大为11位的时候插入是正确的,大于11位的时候,插入的数据就有问题了.
插入一条记录insert into emp(1,123456789012345.1234);
查询刚才插入的记录,显示amount的值为123456789012345.0000
请问这是什么原因呢?
我试了一下,小数点前面的整数最大为11位的时候插入是正确的,大于11位的时候,插入的数据就有问题了.
SQL> create table empp(empno int,amount number(19,4));
Table created
SQL> insert into empp VALUES(1,123456789012345.1234);
1 row inserted
SQL> select * from empp;
EMPNO AMOUNT
--------------------------------------- ---------------------
1 123456789012345.0000
SQL> select to_char(amount) from empp;
TO_CHAR(AMOUNT)
----------------------------------------
123456789012345.1234
create table emp(empno int,amount number(19,4));
insert into emp values (1,123456789012345.1234);col amount format 9999999999999999999.9999
select * from emp; EMPNO AMOUNT
---------- -------------------------
1 123456789012345.1234
1 row selected.
create table emp(empno int,amount number(19,4));
insert into emp values (1,123456789012345.1234);
select t.empno,to_char(t.amount) from emp t;
EMPNO TO_CHAR(T.AMOUNT)
1 123456789012345.1234
应该是显示问题,添加字符处理就行了
1* create table temp(empno int,amount number(19,4))
SQL> /表已创建。SQL> edi
已写入 file afiedt.buf 1* insert into temp values(1,123456789012345.1234)
SQL> /已创建 1 行。SQL> select * from temp; EMPNO AMOUNT
---------- ----------
1 1.2346E+14SQL> col AMOUNT format 'fm9999999999999990.9999'
SQL> / EMPNO AMOUNT
---------- ----------------------
1 123456789012345.1234