在引用游标的OPEN语句中,必须使用FOR子句。FOR子句中的SQL语句可以是SELECT语句,也可以是动态SQL语句(注意动态SQL也必须是SELECT子句,否则在执行阶段会报错)。
在游标的FETCH语句中,INTO子句的变量列表的列数必须和游标返回的结果集的列数一致,否则会返回错误“NOT_ENOUGH_VALUE”。
在游标的FETCH语句中,INTO子句使用记录变量存储数据时,只能使用一个记录变量,并且该记录变量的列数必须和返回结果集的列数一致,否则会返回错误“NOT_ENOUGH_VALUE”。
引用游标可用作SELECT语句的出参,直接返回给客户端做为结果集,也可通过系统函数DBMS_SQL.RETURN_RESULT返回给客户端做为结果集。
引用游标的OPEN语句使用FOR子句对游标赋值。
语法格式
--打开游标。
OPEN cursor_name FOR { dynamic_sql | select statement };
--从游标中读取数据。
FETCH cursor_name INTO { variant_list | record_variant };
--关闭游标。
CLOSE cursor_name;
参数说明
course_name
要使用的游标的名称。
variant_list
变量列表,用于存储从游标中读取的数据。
record_variant
Record类型变量,用于存储从游标中读取的数据。
示例
DECLARE c2 SYS_REFCURSOR; abc test%rowtype; BEGIN OPEN c2 FOR SELECT a FROM test ORDER BY a; CLOSE c2; OPEN c2 FOR SELECT a,b FROM test ORDER BY a; FETCH c2 INTO abc; CLOSE c2; DBMS_OUTPUT.PUT_LINE('result is ' || abc.a); DBMS_OUTPUT.PUT_LINE('result is ' || abc.b); END; /
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。