华为GaussDB T 循环遍历游标FOR IN LOOP

网友投稿 1137 2022-11-07

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

华为GaussDB T 循环遍历游标FOR IN LOOP

使用FOR循环遍历显式游标时,自动执行游标的OPEN、FETCH、CLOSE语句和循环语句的功能,即进入循环时,游标FOR循环语句自动打开游标,并提取第一行游标数据,当程序处理完当前所提取的数据而进入下一次循环时,游标FOR循环语句自动提取下一行数据供程序处理,当提取完结果集合中的所有数据行后结束循环,并自动关闭游标。如果在循环体内执行游标的OPEN、FETCH、CLOSE语句,会返回“INVALID_CURSOR”的错误。

使用FOR循环遍历游标时,如果关键字IN后面是游标名,则该游标名必须是显式游标或者引用游标的名称。

使用FOR循环遍历隐式游标时,关键字IN后面必须是一个SELECT语句。

语法格式

使用FOR循环遍历隐式游标。

FOR index_name IN select_statement LOOP    statement;

END LOOP;

使用FOR循环遍历显式游标。

FOR index_name IN cursor_name LOOP    statement;

END LOOP;

参数说明

index_name

循环变量的名称。

cursor_name

FOR循环要遍历的游标的名称。

select_statement

SELECT语句。指定隐式游标的遍历列表。

statement

循环体。不允许为空。

示例

使用FOR循环遍历显式游标。

DECLARE       CURSOR c1 IS       SELECT a,b FROM test ORDER BY a;BEGIN       DELETE FROM test;       INSERT INTO test(a,b) VALUES(1,100);       INSERT INTO test(a,b) VALUES(1,100);       FOR item IN c1         LOOP           DBMS_OUTPUT.PUT_LINE('A = ' || item.a || ',B = ' || item.b);           DBMS_OUTPUT.PUT_LINE('CURSOR%ISOPEN   is ' || c1%ISOPEN);           DBMS_OUTPUT.PUT_LINE('CURSOR%FOUND    is ' || c1%FOUND);           DBMS_OUTPUT.PUT_LINE('CURSOR%NOTFOUND is ' || c1%NOTFOUND);           DBMS_OUTPUT.PUT_LINE('CURSOR%ROWCOUNT is ' || c1%ROWCOUNT);         END LOOP;       DBMS_OUTPUT.PUT_LINE('after for loop');       DBMS_OUTPUT.PUT_LINE('CURSOR%ISOPEN   is ' || c1%ISOPEN);END;/

使用FOR循环遍历隐式游标

BEGIN     FOR a IN(SELECT * FROM emp WHERE ename LIKE '%zhangsan%' AND sal > 9000 ORDER BY empno;)       LOOP         DBMS_OUTPUT.PUT_LINE('a is emp:'||a.empno||'name:'||a.ename||'job:'||a.job||'sal:'||a.sal);         DBMS_OUTPUT.PUT_LINE(sql%rowcount);       END LOOP;END;/

上一篇:软件测试培训之专用名词
下一篇:软件测试培训之结对测试探讨
相关文章

 发表评论

暂时没有评论,来抢沙发吧~