暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8s存储过程解析之动态游标-使用游标

原创 Todd 2022-05-27
454

和静态游标的使用方式一样,在使用动态游标前也需要使用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;//

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论