FOR(游标变体)语句 (PL/SQL)
游标 FOR 循环语句打开先前声明的游标,访存游标结果集中所有的行,然后关闭该游标。
使用此语句来代替多个不同的 SQL 语句,以便打开游标、定义循环构造以检索结果集中的每一行、测试结果集是否结束并最终关闭游标。
调用
可以从 PL/SQL 过程、函数、触发器或匿名块中调用此语句。
授权
不需要特定的权限即可在 SQL 语句中引用行表达式;但是,要成功地执行语句,需要处理游标所需的所有其他权限。
描述
- FOR
- 引入一个条件,要使 FOR 循环继续进行,此条件必须为 true。
- 记录
- 指定对隐式声明的记录(其定义为“游标%ROWTYPE”)指定的标识。
- IN 游标
- 指定先前声明的游标的名称。
- LOOP 和 END 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;
