将 %ROWTYPE 与游标配合使用 (PL/SQL)

%ROWTYPE 属性用于定义一个记录,该记录的字段与从游标或游标变量中访存的所有列相对应。每个字段都将采用其相应的列的数据类型。

%ROWTYPE 属性以游标名或游标变量名为前缀。语法为 记录 游标%ROWTYPE,其中 记录 是对记录指定的标识,游标 是在当前作用域中显式声明的游标。

以下示例说明如何将游标与 %ROWTYPE 属性配合使用,以便检索关于 EMP 表中每个职员的部门信息。
CREATE OR REPLACE PROCEDURE emp_info
IS
    CURSOR empcur IS SELECT ename, deptno FROM emp;
    myvar           empcur%ROWTYPE;
BEGIN      
    OPEN empcur;
    LOOP
        FETCH empcur INTO myvar;
        EXIT WHEN empcur%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE( myvar.ename || ' works in department '
            || myvar.deptno );
    END LOOP;
    CLOSE empcur;
END;
对此过程(CALL emp_info;)进行的调用将返回以下样本输出:
SMITH works in department 20
ALLEN works in department 30
WARD works in department 30
JONES works in department 20
MARTIN works in department 30
BLAKE works in department 30
CLARK works in department 10
SCOTT works in department 20
KING works in department 10
TURNER works in department 30
ADAMS works in department 20
JAMES works in department 30
FORD works in department 20
MILLER works in department 10