% ROWTYPE属性を使用して、カーソルまたはカーソル変数からフェッチされたすべての列に対応するフィールドを含むレコードを定義できます。 各フィールドは、対応する列のデータ型を受け取ります。
% ROWTYPE属性の先頭には、カーソル名またはカーソル変数名が付いています。
レコードカーソル % ROWTYPE;recordは、レコードに割り当てられた識別子です。 カーソルは、現在のスコープ内で明示的に宣言されたカーソルです。
次の例では、% ROWTYPEでカーソルを使用して、どの従業員がどの部門で働いているかについての情報を取得する方法を示します。
CREATE OR REPLACE PROCEDURE emp_info
IS
CURSOR empcurはSELECT ename、empからのdeptnoです;
myvar empcur % ROWTYPE;
開始
オープンempcur;
LOOP
FETCH empcurにmyvar;
EXIT empcur % NOTFOUND;
DBMS_OUTPUT.PUT_LINE( myvar.ename | | 'works in department ')
| | myvar.de ptno );
END LOOP;
近いempcur;
エンド; このプロシージャから次の出力が生成されます。
EXEC emp_info;
SMITHは部門20で働いています
ALLENは部門30で働いています
WARDは部門30で働いています
ジョーンズは部門20で働いています
マーティンは部門30で働いています
BLAKEは部門30で機能します
CLARKは部門10で働いています
SCOTTは部門20で働いています
キングは部門10で働いています
ターナーは部門30で働いています
ADAMSは部門20で機能します
ジェームズは部門30で働いています
フォードは部門20で働く
ミラーは部門10で働いています