今天晚上運營同事反饋了系統(tǒng)有個列表數(shù)據(jù)查詢不出來,篩選某個條件又能查出數(shù)據(jù)來。當(dāng)運營反饋時,立馬收到線上報警郵件提示如下:

圖1

圖2
也就是拋出?MySQLDataException異常,由于定性思維的原因,一直在排查sql問題,不斷嘗試替換某個字段的數(shù)據(jù)拼接查詢,最終還是失敗了。由于經(jīng)驗較少,不斷嘗試column '15'這一列,心想沒有15這個字段呀(思維方向錯誤了)。導(dǎo)致問題排查了兩個小時;最后聯(lián)想到INTEGER類型出錯,干脆就直接查找mode里的對象與sql查詢查詢出來的字段作比較,最終發(fā)現(xiàn)其實是某個字段數(shù)據(jù)值長度突然大增(部門其他同事對接大廠時,修改了字段長度,然后我們這邊的系統(tǒng)無意識到字段長度,還是使用Integer類型,最終導(dǎo)致異常出現(xiàn)),修改成long類型后解決,但這種修改方法也會隨著時間問題變成一個坑。
總結(jié)今晚遇到的問題,就是以前菜的坑太少了,導(dǎo)致問題定位錯誤。錯誤日志:'1.00000539598E11' in column '15' is outside valid range for the datatype INTEGER翻譯過來也就是“15”列中的“1.00000539598E11”超出了數(shù)據(jù)類型整數(shù)的有效范圍。不是15那個字段,而是第15列(MB? ?太SB了)。因此在此做個筆記,以防以后繼續(xù)犯類似思維錯誤。