ORA 01722 無效數字

2021-10-23 22:49:22 字數 742 閱讀 6813

產生原因: 型別不匹配

我本次遇到的錯誤是: 型別不匹配的插入操作

錯誤摘錄:

declare

ls_djxh number(20);

...begin

for v_cur in (select djxh from ***xx) loop

insert into ylcs.fp_dk_sq

(djxh, ...)

values

('ls_djxh', ...);

錯誤分析: ls_djxh 字段型別為 number, 但是插入資料時, 誤將其放在字串中, 導致報錯無效數字

修改方式: 將插入資料型別修改與定義資料型別一致

declare

ls_djxh number(20);

...begin

for v_cur in (select djxh from ***xx) loop

insert into ylcs.fp_dk_sq

(djxh, ...)

values

(ls_djxh, ...);

總結: ora-01722 通常都是型別不匹配導致, 包括賦值時型別不匹配, 比較時型別不匹配等等, 一般都是數字型與非數字型. 細心一定就可以發現、避免問題.

ORA 01722 無效數字

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

ORA 01722 無效數字

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

oracle報錯ORA 01722無效數字處理

原因 to number中數值有無法轉為數值型的,比如例子的 nan 字元 或者還有其他非法字元在資料裡。解決方法1 剔除無效字元 如 nan 注意這裡舉例的 nan 是示例資料中的乙個字元,不是空值nan 並且在末尾where再to number一次。select from select to n...