Oracle插入number类型数字超过16位,在pl/sql显示中自动四舍五入

1. 现象描述

今天遇到一个比较坑的问题,排查好长时间,所以必须记录下来。
Oracle数据库某个字段类型为number(16,10),插入值999999.9999999999,在pl/sql显示为1000000.000000000,也就是自动四舍五入。怀疑精度不够,为此将字段改为number(20,12), 结果还是一样,但是在前端却又是999999.9999999999。百思不得其解。

2. 原因

pl/sql对于超过16位的数字的查询结构自动四舍五入,但是数据库还是保持原来的值,也就是说保存的值没有变。

3. 解决方法

PL/SQL中工具->首选项中,sql窗口->勾选数字字段to_char.
在这里插入图片描述
你也可以直接用to_char函数,例如
select to_char(money) from xxx_table.

参考:https://blog.csdn.net/YimBa/article/details/78367357

发布了97 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_39530821/article/details/102924178