從游標結果集中檢索到所有需要的行后,必須關閉游標。關閉后,將無法再訪問結果集。

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