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

Why do we get error for checking string value in sql

我运行这段代码是用游标实现的 但是我在 运行 it

之后得到 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;

错误:

Encountered the symbol "IF" when expecting one of the following:

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

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

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;