游标
来源:互联网 发布:淘宝如何上传照片 编辑:程序博客网 时间:2024/05/19 07:10
1 定义:对SELECT语句取得的结果进行一件一件处理的功能。
2 指针:确定当前记录的信息,可以理解为内存中保存此记录的“地址”,在游标处理中,通过移动指针来进行逐行的数据处理。
3 声明游标
declare 游标名 cursor for select 语句;
4 打开游标
open 游标名;
使用游标时,必须执行声明过的游标,取得具体的记录集合,即需要打开游标。
5 保存指针数据到变量中
fetch 游标名 into 变量名,...;
6 读取了所有游标记录后的处理
(1)例外处理:declare 处理种类 handler for 例外的种类 例外发生时的处理;
(2)例外种类决定完成例外发生时的处理后应该如何动作,可以指定EXIT(立即结束处理)或CONTINUE(继续下面的处理,即fetch…into后还会继续执行)。
7 关闭游标
close 游标名;
8 例子
mysql> DELIMITER //mysql> CREATE PROCEDURE sp_cursor( -> OUT p_result TEXT -> ) -> BEGIN -> DECLARE flag BIT DEFAULT 0; -> DECLARE tmp VARCHAR(20); -> DECLARE cur CURSOR FOR SELECT DISTINCT depart FROM employee; -> DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1; -> OPEN cur; -> WHILE flag!=1 DO -> FETCH cur INTO tmp; -> IF flag!=1 THEN -> SET p_result=CONCAT_WS(',',p_result,tmp); -> END IF; -> END WHILE; -> CLOSE cur; -> END -> //
0 0