declare 
  x NVARCHAR2(36);
begin
for x in ( SELECT AID FROM A WHERE AID NOT IN (SELECT DISTINCT(AID) FROM B) ) loop
  INSERT INTO B VALUES (x, 'name', 0, 3);
end loop;
end;上面这个脚本在insert语句 x位置有语法错误,但是我不知道什么错误?刚接触oracle,希望大家帮帮忙!

解决方案 »

  1.   

    declare 
      x NVARCHAR2(36); 
    begin 
    for x in ( SELECT AID FROM A WHERE AID NOT IN (SELECT DISTINCT(AID) FROM B) ) loop 
      INSERT INTO B VALUES (x.AID, 'name', 0, 3); 
    end loop; 
    end; 
      

  2.   

    x 不需要declare 
    默认为rowtypebegin 
      for x in ( SELECT AID FROM A WHERE AID NOT IN (SELECT DISTINCT(AID) FROM B) ) loop 
        INSERT INTO B VALUES (x.AID, 'name', 0, 3); 
      end loop; 
    end;