游标
游标就是结果集,可以把游标当作集合的指针或者java中的引用。一旦打开游标就是执行了查询,打开游标必须要关闭,否则会占用内存资源。游标必须在存储过程中创建和使用。用fetch...into...来迭代游标。使用repeat .....until 条件 end repeat做循环;
创建
declare xx cursor for select * from user;
可以把游标当做结果集的引用,所以这里用declare声明变量,而不是create。这里没有执行select语句,仅仅是定义。
打开游标
open cursor_name;
打开游标时,会执行select语句
关闭游标
close cursor_name;
关闭游标,会释放游标占用的内存资源,所以打开游标后一定要关闭。如果不关闭,默认存储过程结束时,释放内存资源。
完整示例:
这里要注意,局部变量要在任意游标或句柄之前定义,而句柄必须在游标之后定义。
本例中,游标user_cursor是user表中id的集合,通过repeat遍历游标,并将id赋值给局部变量,使用完后关闭游标。