db2游标循环的问题

     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,只循环了一次就退出了.

 

你可能感兴趣的:(c,db2,Integer,存储)