DECLARE 游标名称 CURSOR FOR SQL语句;
2、打开游标
OPEN 游标名称;
FETCH 游标名称 INTO 变量名称[,变量名称];
CLOSE 游标名称;

CREATE PROCEDURE PROC1()BEGIN -- 定义两个存放结果的变量 DECLARE NAME VARCHAR(20); DECLARE ADDR VARCHAR(50); -- 声明游标 DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers; -- 打开游标 OPEN MY; -- 获取结果 FETCH MY INTO NAME,ADDR; -- 这里是为了显示获取结果 SELECT NAME,ADDR; -- 关闭游标 CLOSE MY; END;CALL PROC1();
CREATE PROCEDURE PROC2()BEGIN -- 定义两个存放结果的变量 DECLARE FLAG INT DEFAULT ; DECLARE NAME VARCHAR(20); DECLARE ADDR VARCHAR(50); -- 声明游标 DECLARE MY CURSOR FOR SELECT 姓名,地址 FROM customers;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET FLAG=1; -- 打开游标 OPEN MY; -- 循环体部分 L1:LOOP -- 获取结果 FETCH MY INTO NAME,ADDR; IF FLAG=1 THEN LEAVE L1; END IF; -- 这里是为了显示获取结果 INSERT INTO cus VALUES(NAME,ADDR); -- 关闭游标 END LOOP; -- 结束循环 CLOSE MY; END;然后我们执行这个存储过程,并查询cus表里的数据
CALL PROC2();SELECT * FROM cus;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/94268/viewspace-3147564/ ,如需转载,请注明出处,否则将追究法律责任。