DB2嵌套游标

p1:begin
   declare v_did varchar(10);
   declare v_dname varchar(10);
   declare v_tid varchar(10);
   declare v_tname varchar(10);
   declare i_seq integer default 0;
  declare not_found condition for sqlstate '02000';
  declare at_endc1 int default 0;
  declare at_endc2 int default 0;
  p2: begin  -- open department
    declare cursor1 cursor for
          select did,dname from department;
    declare continue handler for not_found set at_endc1 = 1;
   open cursor1;
  --遍历 cursor1
  while(at_endc1 < 1) do
    fetch cursor1 into v_did,v_dname;
    p3:begin
 declare cursor2 cursor for
      select ID, NAME from teacher where did=v_did and dname=v_dname;
    declare continue handler for not_found set at_endc2 = 1;
  open cursor2;
  if (at_endc1 = 0) then
    set at_endc2 = 0;
  end if;
     --遍历 cursor2
     while(at_endc2 < 1) do
    fetch cursor2 into v_tid,v_tname;
    insert into student(ID, NAME, TID, TNAME, DID, DNAME) values(i_seq,char(i_seq),v_tid,v_tname,v_did,v_dname);
       set i_seq=i_seq+1;
     end while;
  close cursor2; 
    end p3;
  end while;
  close cursor1;
  end p2;
END p1 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值