现在的位置: 首页 > 综合 > 正文

db2游标循环的问题

2013年11月19日 ⁄ 综合 ⁄ 共 612字 ⁄ 字号 评论关闭

     DECLARE  at_end  INT  DEFAULT  0; 
     DECLARE PIID INTEGER DEFAULT 0 ;
     DECLARE PINT INTEGER DEFAULT 0 ;
 
     DECLARE  not_found  CONDITION  FOR  SQLSTATE  '02000';

--DECLARE PCOUNT INTEGER;

 DECLARE  c1  CURSOR  FOR   
       SELECT IID FROM YH;
 
     DECLARE  CONTINUE  HANDLER  FOR  not_found 
         SET  at_end  =  1; 

     OPEN  c1; 
     SET PCOUNT=0;
     ins_loop: 

     LOOP 
         FETCH  c1  INTO  PIID; 
    IF  at_end  <>0    THEN 
             LEAVE  ins_loop; 
         END  IF; 
         SET PCOUNT=PCOUNT+1;
         SELECT IID INTO PINT FROM YH WHERE 0=1;
         END LOOP;

以上这个存储过程,原本期望的循环次数是yh表行数,  但 SELECT IID INTO PINT FROM YH WHERE 0=1;不返回任何行,所以at_end立刻会=1,只循环了一次就退出了.

 

抱歉!评论已关闭.