声明游标变量后,必须使用关联的 SELECT 命令打开它。OPEN FOR 语句指定用于创建结果集的 SELECT 命令。

OPEN name FOR query;

name 是先前声明的游标变量的标识符。query 是一个 SELECT 命令,用于在执行语句时确定结果集。执行 OPEN FOR 语句后的游标变量的值用于标识结果集。

在以下示例中,结果集是来自所选部门的员工编号和姓名的列表。请注意,可以在 SELECT 命令中通常可能出现表达式的任何位置使用变量或参数。在这种情况下,参数用于部门编号的相等测试。

CREATE OR REPLACE PROCEDURE emp_by_dept (
    p_deptno        emp.deptno%TYPE
)
IS
    emp_refcur      SYS_REFCURSOR;
BEGIN
    OPEN emp_refcur FOR SELECT empno, ename FROM emp WHERE deptno = p_deptno;
        ...