和静态游标的使用方式一样,在使用动态游标前也需要使用OPEN语句打开游标。
语法格式:
OPEN <游标名称> FOR <SELECT 语句>
参数说明如下:
<SELECT语句>:游标的内容,可以是任何合法的SELECT语句,也可以是动态SQL语句。
示例:以下代码是包含在游标代码块中的。
DECLARE cur REF CURSOR;
OPEN cur FOR SELECT DISTINCT c_region,1 FROM ssbm.customer ORDER BY c_region LIMIT 1000;
通过FETCH语句,可取得动态游标OPEN语句中的SELECT语句返回的结果集中的字段的值。
语法格式:
FETCH <游标名称> INTO <局部变量>
参数说明如下:
<游标名称>通过OPEN打开的游标的名称。
<局部变量>从游标中取得的值要保存在这些局部变量中,FETCH语句中要求局部变量的数量与动态游标OPEN语句中的SELECT语句中的选择列表中的字段数量相同,且数据类型也要对应相同或者可以进行自动转换。
示例:以下代码是包含在游标代码块中的。
DECLARE s_region CHAR(16);
DECLARE region INT;
DECLARE cur REF CURSOR;
OPEN cur FOR SELECT DISTINCT c_region,1 FROM ssbm.customer ORDER BY c_region LIMIT 1000;
FETCH cur INTO s_region, region;//
游标在使用完成后需要关闭,否则游标所占用的服务器的资源不会被释放。
如果没有明确的关闭,游标则在声明它的复合语句结束处被关闭。
语法格式:
CLOSE <游标名称>
示例:以下代码是包含在游标代码块中的。
DECLARE s_region CHAR(16);
DECLARE region INT;
DECLARE cur REF CURSOR;
OPEN cur FOR SELECT DISTINCT c_region,1 FROM ssbm.customer ORDER BY c_region LIMIT 1000;
FETCH cur INTO s_region, region;//
CLOSE cur;//