产生原因: 类型不匹配
我本次遇到的错误是: 类型不匹配的插入操作
错误摘录:
DECLARE
LS_DJXH NUMBER(20);
...
BEGIN
for v_cur in (select djxh from xxxxx) 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 xxxxx) LOOP
insert into ylcs.fp_dk_sq
(DJXH, ...)
values
(LS_DJXH, ...);
总结: ORA-01722 通常都是类型不匹配导致, 包括赋值时类型不匹配, 比较时类型不匹配等等, 一般都是数字型与非数字型. 细心一定就可以发现、避免问题.