使用带参数的游标。cusor c2(in_dm) is select * from table2 where dm like in_dm;   
cursor c1 is select * from table1;
c1_rec c1%rowtype;
v_dm varchar2(6);
v_mc varchar2(20);
c2_rec c2%rowtype;
begin
 open c1;
 loop
   fetch c1 into c1_rec;
   exit when c1%notfound;
   v_dm:=c1_rec.dm;
   v_mc:=c1_rec.mc;
   
   open c2(v_dm);    --?
   loop                                                   

解决方案 »

  1.   

    给你一个例子吧。
    declare
    cursor c1 is
    select id1,name1 from table1;
    cursor c2(v_id varchar2) is
    select id2,name2 from table2 where id2=v_id;
    begin
    for v1_sor in c1 loop
     for v2_sor in c2(v1_sor.id1) loop
     ....
     end loop;
    end loop;
    end;
    /
      

  2.   

    可以使用游标变量,其他的和静态游标差不多了declare
      type t_cTYPE is ref cursor return a1%ROWTYPE;
      t_c t_cTYPE;
    begin
      open t_c for select * from a1;
    end;
    /