前段时间 出现过这个问题,:
表中有一列为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