Oracle錯誤 ORA 01722 無效數字

2022-03-27 12:50:28 字數 484 閱讀 8368

ora-01722: 無效數字

主要原因是:

1、對於兩個型別不匹配(乙個數字型別,乙個非數字型別,同下)的值進行賦值操作;

2、兩個型別不匹配的值進行比較操作(例如,「=」);

3、to_number函式中的值,非數字的,比如,to_number('a')肯定是不行的,to_number('12306')則是正常的。

要避免這些問題,要做到在寫sql語句時就好認真處理好不同型別的問題。

比如如果要比較的話,同時都用to_number強制轉換(to_number(欄位a) = to_number(欄位b)),或者同時轉換為字串型別(欄位a||'' = 欄位b||'',都連線乙個空字串使之變成字串型別)。

在語句中使用to_number函式時,要保證值一定是數字格式,或者寫好異常處理。

當我們碰到這個錯誤提示時,就從所有用到的數字型別的字段開始檢查,逐一排查,從而解決問題。

參考:

oracle 錯誤解決ORA 12505

sql plu可以連線,但是使用jdbc連線oracle的時候報資料庫的錯誤ora 12505 監聽程式當前無法識別連線描述符中所給出的sid 這個是由於oracle的service name 和sid name不一致,而pl sql developer和sqlplus 採用service name...

Oracle錯誤 ORA 01722 無效數字

程式或者oracle資料庫出現 ora 01722 無效數字 錯誤 原因 1 oracle資料庫的字段為number型別,如果運算元據庫的sql語句中該字段所攜帶的資料不是數字型別,oracle資料庫會自動將該字段攜帶的資料轉換成number型別,但是最後轉換不成功就會報錯。例如sql語句中該字段攜...

oracle匯入資料錯誤ora 01400

在exp語句後面增加 direct n exp 中direct 引數預設為n 即採用普通路徑匯出,和使用程式匯出恢復資料一樣,和執行其他查詢一樣,從磁碟和高速緩衝區讀取資料,從那裡,資料被移到乙個工作區,在工作區,行被提出來,檢查和查詢中的where子句是否匹配,然後將資料送到匯出程式。exp di...