不用,都在declare部分声明,使用带输入参数的游标就行了。declare
ls_employee   varchar2(10)
cursor c_abc is
select distinct 员工 from 销售记录 where ...;cursor c_xyz(in_employee in varchar2) is
  select distinct 商品代码 from 销售记录 where 员工 = in_employee;begin
   open c_abc;
   loop
      fetch c_abc into ls_employee;
      exit when c_abc%notfound;
      
      open c_xyz(ls_employee);
      loop
          ...
      end loop;
      close c_xyz;
   end loop;
end;

解决方案 »

  1.   

    两个游标都放在declare部分进行声明比较整洁,程序可读性较好。
      

  2.   

    太好了,
    to : Lastdrop(空杯) :
    在第二个游标的时候,取出商品代码后,取出的商品代码不止一条记录。
    比如:A员工,他的销售的商品是:001, 002, 003, 但是我们事先不知道,
    而我想实现这样的功能:select * from table where 商品代码 = '001';
    有好办法吗?
      

  3.   

    那就再用一个游标。cursor c_goods(in_goods in varchar2) is
      select * from table where 商品代码 = in_goods;