天天看點

Oracle錯誤: ORA-01722 無效數字

程式或者Oracle資料庫出現“ORA-01722 無效數字” 錯誤

原因:

1、Oracle資料庫的字段為Number類型,如果操作資料庫的SQL語句中該字段所攜帶的資料不是數字類型,Oracle資料庫會自動将該字段攜帶的資料轉換成Number類型,但是最後轉換不成功就會報錯。

例如SQL語句中該字段攜帶的資料為“123”,那麼Oracle可以成功轉換,如果該字段攜帶的資料為“2019年6月10日”,Oracle轉換失敗,報無效數字錯誤!

2、SQL語句中多表關聯時,關聯條件字段的值Oracle會自動轉成數字類型,如果轉換失敗報錯。

例如A表的主鍵ID(Number類型)和B表的某個字段A_ID(Varchar2類型),關聯語句:from A left join B on A.ID = B.A_ID,Oracle會首先将A_ID轉換成Number類型,如果在插入資料或者修改資料的時候将A_ID的值變成非數字(英文、漢字或者夾雜特殊字元),這時候Oracle轉換就會報錯。