产生原因: 类型不匹配
我本次遇到的错误是: 类型不匹配的插入操作
错误摘录:

 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 通常都是类型不匹配导致, 包括赋值时类型不匹配, 比较时类型不匹配等等, 一般都是数字型与非数字型. 细心一定就可以发现、避免问题.

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐