ORA 01722無效數字錯誤解決記錄

2021-09-01 23:34:16 字數 694 閱讀 5610

今天使用oracle查詢時候遇到了ora01722錯誤:無效數字。

一看錯誤就是資料型別不匹配造成的,我的查詢欄位key_1雖然是varchar2型別的,但裡面放的是number數字,檢視aa表type_1欄位裡面值是沒有非數字(數字型別)。我的查詢語句如下:

select nvl((select value_1

where key_1 = aa.type_1

and key_type = 'test'),

'未知')

from aa

而是直接使用:

查詢,查詢結果居然是null,而是懷疑該欄位裡面有非數字型別存在,直接使用:

select value_1,length(value_1)

where 1 = 1

and key_type = 'test'

結果如下:

如上所示,該字段初看長度是8實際長度是9,很可能裡面多了空格。

解決方法:把空格去掉。

全文完。    

ORA 01722 無效數字

ora 01722 欄位中含有不能轉換為數字的資料,一般出現在varchar型別向number型別轉換。如果varchar型別含有非數字資料,或者含有不能合法轉換的數字,就會觸發這個報錯。編寫函式協助找出不合法的資料記錄。create or replace function isnumber p i...

ORA 01722 無效數字

場景 同樣的 同樣的資料庫表結構,但生產環境沒有報錯,而測試環境卻報錯 ora 01722 無效數字,分析 經分析發現問題,查詢語句中的乙個條件欄位為字元型,而傳的引數是long型別,撈出語句放在生產庫查詢不報錯,測試庫報錯,確定應該是資料庫資料問題。場景重現 建個測試表 create table ...

ORA 01722 無效數字

產生原因 型別不匹配 我本次遇到的錯誤是 型別不匹配的插入操作 錯誤摘錄 declare ls djxh number 20 begin for v cur in select djxh from xx loop insert into ylcs.fp dk sq djxh,values ls dj...