日期:2014-05-17  浏览次数:21003 次

oracle在用insert into select 精度问题
在一个程序里面用了oracle的insert into table1(col1) select col2 from tbable2这种方式,发现插入的值 给自动四舍五入了。如何让他不四舍五入,求教。
比如:
select col2 from table2
--------------------------
col1
12.345
insert into table1(col1) select col2 from tbable2

select col1 from table1
-----------------------
12.0
------解决方案--------------------
两表中对应的字段数据类型一样吗?
------解决方案--------------------
看下 table1 的字段类型
------解决方案--------------------
如果字段类型一致,是不会被四舍五入的
------解决方案--------------------
这个是由于你定义table1的col1字段时候
后面的有效数字没设置好
比如col1 number(5.3)表示5位有效数字,有3位小数

------解决方案--------------------
table1的(col1) 字段需设置成和tbable2的col2 一样即可。
------解决方案--------------------



create table A (num1 number(4,2));
create table B (num2 number(4,2));
insert into B values(23.45);
insert into A(num1) select num2 from B;
select * from A;

这是我执行之后的结果,并没有四舍五入,可能是你两个表的精度不一样!

------解决方案--------------------
是字段类型 NUMBER的小数位数不一样吧= =