for vItem in (select serial_no,name from table2)
Loop
  update table1 t set t.name = vItem.name where t.serial_no = vItem.serial_no;
end loop;for vItem in (select id from table3)
Loop
  update table2 t set t.label = '1' where t.id = vItem.id; 
end loop;

解决方案 »

  1.   

    我看不懂下面代码,vItem表示什么?希望写一个完整的代码,衷心感谢!!!
    for vItem in (select serial_no,name from table2)
    Loop
      update table1 t set t.name = vItem.name where t.serial_no = vItem.serial_no;
    end loop;for vItem in (select id from table3)
    Loop
      update table2 t set t.label = '1' where t.id = vItem.id; 
    end loop;
      

  2.   

    create or replace procedure p_test
    as
      cursor cur_t1 is select serial_no,name from table1;
      cursor cur_t2 is select id from table3;
    begin
      for c_t1 in cur_t1 loop
          update table2 set name=c_t1.name where serial_no=c_t1.serial_no;
      end loop;
      for c_t2 in cur_t2 loop
          update table2 set label='1' where id=c_t2.id;
      end loop;
      commit;
    exception
      when others then
          dbms_output.put_line('出现如下错误:'sqlcode||'-'||sqlerrm);
    end;这样该看明白了吧???
      

  3.   

    for vItem in (select serial_no,name from table2)
    vItem是游标。
      

  4.   

    我知道了,不要那么复杂,用一个update语句就解决了