webservice開發過程中,數據庫由原來的oracle改為現在的sql server。然后重新調試,結果報出ora 01722無效數字的錯誤。
由于連接oracle數據庫的時候并沒有問題,所以一開始我以為是數據庫不同,導致部分數據類型差異,(但又覺得有點離譜,切換數據庫,不至于會導致這種錯誤吧)
經過排查,總結得出如下:
1、對于兩個類型不匹配(一個數字類型,一個非數字類型,同下)的值進行賦值操作;
2、兩個類型不匹配的值進行比較操作(例如,“=”);
3、to_number函數中的值,非數字的,比如,to_number('a')肯定是不行的,to_number('123')則是正常的。
?
想要避免此問題或者類似問題,必須做到:
1、對數據庫數據類型了如指掌
2、在數據交換過程中,必須清楚請求,相應的數據類型
3、在復雜的sql中,需要清楚所有數據類型,逐一排查
?
結果證明我一開始的想法并沒有科學依據,事實證明結論,實踐鞏固理論。
?