1.背景
執行Oracle存儲過程時報錯:ORA-01722: 無效數字
2.錯誤描述
1、對於兩個類型不匹配,一個數字類型,一個非數字類型的值進行賦值操作;
2、兩個類型不匹配的值進行比較操作,比如一個是數字類型,另一個是字符串類型,如: 120='120'(這種情況只是在有的版本中會報錯);
3、to_number函數中的值,非數字的,比如,to_number('你好')肯定是不行的,to_number('120')則是正常的;
3.解決方案
1.在賦值或者比較等操作時,確保類型的一致性,如果不一致使用,to_number('120'),或者to_char(120)進行轉換;
2.不依賴於Oracle的版本,不論版本是否是否正確,都要確保左右兩邊的類型一致,建議以左邊的類型為准;