为什么我们在sql中检查字符串值时会出错

时间:2017-03-29 00:11:47

标签: sql database oracle cursor

我正在运行这段用游标实现的代码 但运行后我得到if语句错误

declare
  cursor cr is
   select idd,name from tes;
     begin
       for n in cr
         IF n.name = '' THEN
          insert into tes2 values(n.idd,'$$$');
         ELSE
          insert into tes2 values(n.idd,n.name);
         END IF;
    end loop;
    commit;
   end;

错误:

  

在遇到以下其中一项时遇到符号“IF”:

     

。 (* @%& - + / at loop mod remaining rem .. || multiset

我的变量的类型是varchar2,如果n.name为NULL,我也尝试过,但是没有用。

1 个答案:

答案 0 :(得分:0)

for语句后,您忘记添加loopEnd loop有,但没有循环开始。更改以下部分后尝试

for n in cr 
   loop
         IF n.name = '' THEN 
          insert into tes2 values(n.idd,'$$$'); 
         ELSE 
          insert into tes2 values(n.idd,n.name); 
         END IF; 
    end loop;