Oracle数据库number(20,8)插入值和保存值不一致

crokery 2013-04-18 11:00:15
一张表的某个字段是number(20,8)类型的,在写insert脚本是向这个字段插入"123369999998.23",结果在查询时,显示值是"123369999998.22999600",无论插入值是数字型的123369999998.23、"123369999998.23"、123369999998.23000000、"123369999998.23000000",结果都一样,是"123369999998.22999600"。请问有什么解决办法吗?
...全文
795 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sych888 2013-04-21
  • 打赏
  • 举报
回复
SQL> select id from test2; ID ---------- 1.2337E+11 SQL> col id format 9999999999999999.99999999 SQL> select id from test2; ID -------------------------- 123369999998.23000000
sych888 2013-04-21
  • 打赏
  • 举报
回复
SQL> create table test2(id number(20,8)); 表已创建。 SQL> insert into test2 select 123369999998.23 from dual; 已创建 1 行。 SQL> select * from test2; ID ---------- 1.2337E+11 SQL> select to_char(id) from test2; TO_CHAR(ID) ---------------------------------------- 123369999998.23 --显示不准确,应该是工具的显示问题
crokery 2013-04-18
  • 打赏
  • 举报
回复
是PL/sql显示转换有问题,Oracle本身储存没有问题,用plsql查看时,把number转换成字符返回来就不会有问题。或者用Oracle自带的Oracle SQL Developer工具查看也不会有问题。 plsql查看时,用select to_char(column1),* from table结果显示不会有问题。
睿智天成 2013-04-18
  • 打赏
  • 举报
回复
引用 楼主 crokery 的回复:
一张表的某个字段是number(20,8)类型的,在写insert脚本是向这个字段插入"123369999998.23",结果在查询时,显示值是"123369999998.22999600",无论插入值是数字型的123369999998.23、"123369999998.23"、123369999998.23000000、"123369999998.23000000",结……
你把number(20,8)改成number(20,2)试试

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧