Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103549183
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-29 08:50:08

 来源:赛迪网    作者:小桥

本文中的存储过程示例,预计的循环次数是yh表行数,由于SELECT IID INTO PINT FROM YH WHERE 0=1;不返回任何行,所以at_end后会立刻等于1(只循环一次就退出)。

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;
阅读(886) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~