游标

来源:互联网 发布:淘宝如何上传照片 编辑:程序博客网 时间: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
原创粉丝点击