从游标结果集中检索到所有需要的行后,必须关闭游标。关闭后,将无法再访问结果集。

CLOSE 语句如下所示:

CLOSE name;

name 是当前打开的游标的标识符。游标关闭后,不能再次关闭。但是,一旦关闭游标,就可以再次对关闭的游标发出 OPEN 语句,查询结果集将会重建,然后可以使用 FETCH 语句来检索新结果集的行。

以下示例说明了 CLOSE 语句的用法:

CREATE OR REPLACE PROCEDURE cursor_example
IS
    v_emp_rec       emp%ROWTYPE;
    CURSOR emp_cur_1 IS SELECT * FROM emp;
BEGIN
    OPEN emp_cur_1;
    FETCH emp_cur_1 INTO v_emp_rec;
    DBMS_OUTPUT.PUT_LINE('Employee Number: ' || v_emp_rec.empno);
    DBMS_OUTPUT.PUT_LINE('Employee Name  : ' || v_emp_rec.ename);
    CLOSE emp_cur_1;
END;

调用此存储过程时会生成以下输出。员工编号 7369, SMITH 是结果集的第一行。

EXEC cursor_example;

Employee Number: 7369
Employee Name  : SMITH