游标是一个查询结果集的定位器.
你可以在procedure这样定义游标,以下是我的例子
cursor c_on_line is
  select barcode_no
  from barcode_info where check_flag='S'
...
open c_on_line;
loop
     fetch c_on_line into v_barcode_on_line;
     exit when c2_on_line%notfound;
     
     insert into history_barcode_info
     select * from barcode_info 
     where barcode_no = v_barcode_on_line;
     delete barcode_info where barcode_no = v_barcode_on_line;
     commit;
end loop;

解决方案 »

  1.   

    更正如下
    loop
         fetch c_on_line into v_barcode_on_line;
         exit when c_on_line%notfound;
         
         insert into history_barcode_info
         select * from barcode_info 
         where barcode_no = v_barcode_on_line;
         delete barcode_info where barcode_no = v_barcode_on_line;
         commit;
    end loop;
      

  2.   

    游标其实就是结果集,用来对批量数据进行逐个处理,我们知道sql是过程式语言,操作的是集合,结果也是集合,这就对我们逐个处理纪录产生了问题,因此在pl\sql中产生了游标来实现这个功能
      

  3.   

    其实就是开发环境里的RECORDSET,如果你做过开发一定不会陌生,作用就是为了逐行读取和处理数据用的