游标 FOR 循环
在目前为止提供的游标示例中,处理游标结果集所需的编程逻辑包括一个用于打开游标的语句、一个用于检索结果集的每一行的循环结构、一个用于结果集末尾的测试和一个用于关闭游标的语句。游标 FOR 循环是一个循环结构,使用户无需单独编写刚刚列出的语句。
游标 FOR 循环打开先前声明的游标,获取游标结果集中的所有行,然后关闭游标。
创建游标 FOR 循环的语法如下所示。
FOR record IN cursor
LOOP
statements
END LOOP;
record 是通过定义 cursor%ROWTYPE 分配给隐式声明的记录的标识符。cursor 是先前声明的游标的名称。statements 是一个或多个 SPL 语句。必须至少有一个语句。
以下示例显示了%NOTFOUND中的示例,修改为使用游标 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;
实现了相同的结果,如下面的输出所示。
EXEC cursor_example;
EMPNO ENAME
----- -------
7369 SMITH
7499 ALLEN
7521 WARD
7566 JONES
7654 MARTIN
7698 BLAKE
7782 CLARK
7788 SCOTT
7839 KING
7844 TURNER
7876 ADAMS
7900 JAMES
7902 FORD
7934 MILLER
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论