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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值