自己案例
DELIMITER **
DROP PROCEDURE IF EXISTS SP_T6136 **
CREATE PROCEDURE SP_T6136 ()
BEGIN
-- 需要定义接收游标数据的变量
declare _f03 enum('BUY','SYS');
declare _f01 bigint(20);
declare _f02 tinyint(4) ;
declare _f04 datetime;
-- 判断游标到达最后的情况 该变量会在游标到达最后是变为1
DECLARE _STOP INT DEFAULT 0;
-- 声明游标
DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;
-- 设置游标的终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _STOP=1;
-- 打开游标
OPEN _t6136;
-- 提取游标里的数据
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/* 开始循环 */
WHILE _STOP<>1 DO
/*任务业务*/
select _f01 as a,_f02 as b,_f03 as e,_f04 as c;
/*游标向下走一步*/
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/* 结束循环 */
END WHILE;
-- 关闭游标
CLOSE _t6136;
END **
DELIMITER ;
CALL SP_T6136;
DELIMITER **
DROP PROCEDURE IF EXISTS SP_T6136 **
CREATE PROCEDURE SP_T6136 ()
BEGIN
-- 需要定义接收游标数据的变量
declare _f03 enum('BUY','SYS');
declare _f01 bigint(20);
declare _f02 tinyint(4) ;
declare _f04 datetime;
-- 判断游标到达最后的情况 该变量会在游标到达最后是变为True
DECLARE done INT DEFAULT true;
-- 声明游标
DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;
-- 设置游标的终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=false;
-- 打开游标
OPEN _t6136;
-- 提取游标里的数据
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/* 开始循环 */
WHILE done DO
/*任务业务*/
select _f01 as a,_f02 as b,_f03 as e,_f04 as c;
/*游标向下走一步*/
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/* 结束循环 */
END WHILE;
-- 关闭游标
CLOSE _t6136;
END **
DELIMITER ;
CALL SP_T6136;
DELIMITER **
DROP PROCEDURE IF EXISTS SP_T6136 **
CREATE PROCEDURE SP_T6136 ()
BEGIN
-- 需要定义接收游标数据的变量
DECLARE _f03 ENUM('BUY','SYS');
DECLARE _f01 BIGINT(20);
DECLARE _f02 TINYINT(4) ;
DECLARE _f04 DATETIME;
-- 判断游标到达最后的情况 该变量会在游标到达最后是变为True
DECLARE done INT DEFAULT FALSE;
-- 声明游标
DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;
-- 设置游标的终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE;
-- 打开游标
OPEN _t6136;
-- 开始循环
read_loop: LOOP
-- 提取游标里的数据
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/*判断是否结束循环*/
IF done THEN
LEAVE read_loop;
END IF;
/*任务业务*/
select _f01 as a,_f02 as b,_f03 as e,_f04 as c;
-- 关闭循环
END LOOP;
-- 关闭游标
CLOSE _t6136;
END **
DELIMITER ;
CALL SP_T6136;
DELIMITER **
DROP PROCEDURE IF EXISTS SP_T6136 **
CREATE PROCEDURE SP_T6136 ()
BEGIN
-- 需要定义接收游标数据的变量
DECLARE _f03 ENUM('BUY','SYS');
DECLARE _f01 BIGINT(20);
DECLARE _f02 TINYINT(4) ;
DECLARE _f04 DATETIME;
-- 判断游标到达最后的情况 该变量会在游标到达最后是变为True
DECLARE _STOP INT DEFAULT 1;
-- 声明游标
DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;
-- 设置游标的终止条件
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _STOP=0;
-- 打开游标
OPEN _t6136;
-- 开始循环
read_loop: LOOP
-- 提取游标里的数据
FETCH _t6136 INTO _f01,_f02,_f03,_f04;
/*判断是否结束循环*/
IF _STOP<>1 THEN
LEAVE read_loop;
END IF;
/*任务业务*/
select _f01 as a,_f02 as b,_f03 as e,_f04 as c;
-- 关闭循环
END LOOP;
-- 关闭游标
CLOSE _t6136;
END **
DELIMITER ;
CALL SP_T6136;