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

插入到数据库的数据不一致,求解释
create table tb_pinfo 
(
pid number,
pname varchar2(200),
dprice number(19,2),
cprice number(19,2)
);

insert into tb_pinfo values(1,'lenovo g470',99999999999999999,0);

插入之后,查询发现插入后的数据,和插入时的数据明显不一致


大家都遇到这种鸟问题吗?如何解决
------解决方案--------------------
create table tb_pinfo 
(
pid number,
pname varchar2(200),
dprice number(20,2),cprice number(19,2)
);

这样就没有问题了
------解决方案--------------------

------解决方案--------------------
这是Oracle number类型
number类型的存储机制

number(p,s)
p:1~38
s:-84~127

p>0,对s分2种情况:

1. s>0
精确到小数点右边s位,并四舍五入。然后检验有效数位是否<=p;如果s>p,小数点右边至少有s-p个0填充。

2. s<0
精确到小数点左边s位,并四舍五入。然后检验有效数位是否<=p+
------解决方案--------------------
s
------解决方案--------------------


------解决方案--------------------
你用的是不是pl/sql ?

哈哈。这个是pl/sql 的bug。。它会自动帮你四舍五入的。

如果你插入1111111111.12 到表中,然后再查这个字段出来,显示的却是1111111111 小数点后值没啦。。
和你这个是同样的道理。。( 如果你想看到小数点后的值的话。你可以to_char() )

你换个客户端就可以了。我换的是 cse 工具。。