zoukankan      html  css  js  c++  java
  • 一次 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

     
     
  • 相关阅读:
    练习4.22、4.23、4.24
    练习4.20
    练习4.17、4.18、4.19
    mysql基础语句
    mysql的innodb存储引擎
    git
    mysql集群7.4.1
    批量执行命令
    cnetos 7 mariadb 集群报错分析解答
    windows_agent 添加
  • 原文地址:https://www.cnblogs.com/lzpong/p/4847018.html
Copyright © 2011-2022 走看看