Oracle查询数据报OCI-22053:溢出错误

情况描述

在查询一条数据时,报了OCI-22053:溢出错误,报错语法是简单的一个查询语法,例如 select * from table_name,没有任何其他的关联和条件

问题排查

通过网络上的经验总结,多半原因是由于number字段的精度问题导致的,建议使用round()函数进行截取。

本次情况发现确实有一个字段是number字段,且用于存储时间戳信息,但是正常我们定义number字段的时候,通常会定义number字段的长度,但是该表并未制定number字段的长度,经测试,发现有的会报错,有的不会,直接通过plsql查询都不会报错,但是通过程序查询就会报错。

通过会报错的数据行,查询的时候去掉该字段,果然程序正常了。而且该字段为空的时候,也会报错,有些有数据的也会报错(长度为10),后由于业务情况不同,我们直接把该字段排除掉,不做结果返回,问题解决。

问题原因总结

1.由于number字段长度未指定或超长导致的精度溢出,建议指定number字段长度

以上情况只是本人遇到的情况总结,总结原因肯定不全面,仅供参考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值