新公司使用mysql,最近给财务部门做了一些统计报表,要用到存储过程里的指针,总结一下:)
1.指针的声明前面不可以有set,声明格式如下:
DECLARE c_name CURSOR FOR select...
2.声明一个handler用来标记指针状态:
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_status = 1;
3.打开指针,使用REPEAT获取记录:
OPEN c_name;
FETCH FROM c_sn INTO tmp_sn, tmp_batch_id;
REPEAT
...
FETCH FROM c_sn INTO tmp_sn, tmp_batch_id;
UNTIL v_status=1 END REPEAT;
CLOSE c_name;
OK,就这么简单。
一个完整的存储过程体如下:
BEGIN
DECLARE v_status INT DEFAULT 0;
DECLARE c_name CURSOR FOR select...;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_status = 1;<--注意此处的顺序
OPEN c_name;
FETCH FROM c_sn INTO tmp_sn, tmp_batch_id;
REPEAT
...
FETCH FROM c_sn INTO tmp_sn, tmp_batch_id;
UNTIL v_status=1 END REPEAT;
CLOSE c_name;
END
posted on 2008-11-25 13:01
adrian615 阅读(377)
评论(0) 编辑 收藏 所属分类:
mysql