一次 Oracle 算出运算溢出问题 排查解决 (并非除数为零!)

前段时间 出现过这个问题,:

表中有一列为number类型 rec_recordlength (两个时间的间隔长度/秒)

部分数据 统计这个字段就会出现 "算出运算溢出" 错误,很是头疼,找不出原因

然后

今天又出现了, 然后不断排查,排查,发现是有一条数据导致的,

后来 这条数据删除重新插入就好了,

然后想到唯一动过这条数据的,是执行了rec_recordlength的更新,动作如下:

 update  V_recordlogs set rec_recordlength=86400*(rec_endtime-rec_starttime)
 where rec_c_id='178598';

重试这条语句,果然就是这条更新语句,导致rec_recordlength统计保存"算出运算溢出";

想不通了.......  难道  86400*(rec_endtime-rec_starttime)  算出来的不是数值?

好吧,加个转换:
update  aladdinpbx_recordlogs set rec_recordlength=to_number(86400*(rec_endtime-rec_starttime))
 where rec_c_id='178598'; 

居然就没有问题了

不知道这是不是个bug....

PS:Oracle 11g

 
 

转载于:https://www.cnblogs.com/lzpong/p/4847018.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值