灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:3623回复:0

[mysql]MySQL游标语法实例

楼主#
更多 发布于:2012-10-30 10:50



MySQL游标语法实例

1、基本语法:
Sql代码  
#定义游标  
declare fetchSeqCursor cursor for select seqname, value from sys_sequence;  
#使用游标  
open fetchSeqCursor;  
#fetch数据  
fetch cursor into _seqname, _value;  
#关闭游标  
close fetchSeqCursor;  
 www.atcpu.com  
2、单游标例子:
Sql代码  
## define the flag for loop judgement  
declare fetchSeqOk boolean;  
## define the varient for store the data  
declare _seqname varchar(50);  
declare _value bigint(20);  
## define the cursor  
declare fetchSeqCursor cursor for select seqname, value from sys_sequence;  
## define the continue handler for not found flag  
declare continue handler for NOT FOUND set fetchSeqOk = true;  
set fetchSeqOk = false;  
 
open fetchSeqCursor;  
fetchSeqLoop:Loop  
if fetchSeqOk then  
leave fetchSeqLoop;  
else  
fetch cursor into _seqname, _value;  
 
select _seqname, _value;  
end if;  
 
end Loop;  
close fetchSeqCursor;  
 www.atcpu.com  
3、嵌套的游标循环
java代码  
## define the flag for loop judgement  
declare fetchSeqOk boolean;  
## define the varient for store the data  
declare _seqname varchar(50);  
declare _value bigint(20);  
## define the cursor  
declare fetchSeqCursor cursor for select seqname, value from sys_sequence;  
## define the continue handler for not found flag  
declare continue handler for NOT FOUND set fetchSeqOk = true;  
set fetchSeqOk = false;  
 www.atcpu.com  
open fetchSeqCursor;  
fetchSeqLoop:Loop  
if fetchSeqOk then  
leave fetchSeqLoop;  
else  
fetch cursor into _seqname, _value;  
 
#嵌套的游标循环  
begin  
 
declare fetchSeqOk boolean default 'inner';  
## define the cursor  
declare cursor2 cursor for select .... from ...;  
## define the continue handler for not  
declare continue handler for NOT FOUND set fetchSeqOk = true;  
set fetchSeqOk = false;  
open cursor2;  
fetchloop2 loop  
if fetchSeqOk then  
else  
 
end if;    www.atcpu.com  
 
end loop;  
close cursor2;  
end;  
#嵌套的游标循环结束  
 
end if;  
 
end Loop;  
close fetchSeqCursor;

喜欢0 评分0
游客

返回顶部