回想一下上周,想到了一件挺有意思,也感觉不应该发生的问题,主要是对于其他项目的不了解。
事情是发生在周一的时候,晚上其他项目组的同事(一起入职的应届生),问我他的程序出现了Oracle OCI-22053:溢出错误的问题,遇到过没有,我说是oracle的问题,但是好久没有用过了,我们项目组使用的是其他的数据库(因为项目较小),当时就说可以帮忙查看一下。
通过查看,感觉应该是精度的问题,我就想到可以使用round函数,然后就将他程序中的查询字段增加了round函数,但是依旧报这个问题,很是疑惑。
然后将sql语句拿到pl/sql中执行,没有报任何错误,我就问他看一下表结构,居然告诉我不知道那个表在哪,我说那它是什么啊?最后知道是一个视图,通过分析视图里的语句,发现在生成视图的时候,居然包含了一些乘除操作,没有进行精度控制,真心感觉悲催,最后在视图中一些字段使用了round函数,再次运行程序,结果正确了,也没有再报溢出错误。
总结一下,面对一个新的项目组或者不接触的东西,真心要问清楚都是什么,也会更好的让自己帮助其他人解决一些问题,最后还是挺开心,可以帮助别人。
努力,加油!