DB2 10.5 for Linux, UNIX, and Windows

FOR(游标变体)语句 (PL/SQL)

游标 FOR 循环语句打开先前声明的游标,访存游标结果集中所有的行,然后关闭该游标。

使用此语句来代替多个不同的 SQL 语句,以便打开游标、定义循环构造以检索结果集中的每一行、测试结果集是否结束并最终关闭游标。

调用

可以从 PL/SQL 过程、函数、触发器或匿名块中调用此语句。

授权

不需要特定的权限即可在 SQL 语句中引用行表达式;但是,要成功地执行语句,需要处理游标所需的所有其他权限。

语法

阅读语法图跳过直观语法图
>>-FOR--记录--IN--游标--LOOP--statement--END LOOP------------------><

描述

FOR
引入一个条件,要使 FOR 循环继续进行,此条件必须为 true。
记录
指定对隐式声明的记录(其定义为“游标%ROWTYPE”)指定的标识。
IN 游标
指定先前声明的游标的名称。
LOOPEND LOOP
开始和结束循环,此循环包含要在循环的每次迭代期间执行的 SQL 语句。
statement
一个或多个 PL/SQL 语句。至少需要一个语句。

示例

以下示例演示包含游标 FOR 循环的过程:
CREATE OR REPLACE PROCEDURE cursor_example
IS
  CURSOR emp_cur_1 IS SELECT * FROM emp;
BEGIN     
  DBMS_OUTPUT.PUT_LINE('EMPNO    ENAME');
  DBMS_OUTPUT.PUT_LINE('-----    -------');
  FOR v_emp_rec IN emp_cur_1 LOOP
    DBMS_OUTPUT.PUT_LINE(v_emp_rec.empno || '     ' || v_emp_rec.ename);
  END LOOP;
END;