使用 %ROWTYPE 屬性,可以定義一條記錄,該記錄包含與從游標或游標變量獲取的所有列相對應的字段。每個字段都采用其對應列的數據類型。

%ROWTYPE 屬性以游標名稱或游標變量名稱為前綴。

record cursor%ROWTYPE;

record 是分配給記錄的標識符。cursor 是當前作用域內顯式聲明的游標。

以下示例顯示了如何將游標與 %ROWTYPE 結合使用來獲取有關哪個員工在哪個部門中工作的信息。

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;

以下是此存儲過程的輸出。

EXEC 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