カーソルの属性
SQLスクリプトでカーソルの属性を取得できます。
型変数のカーソルの宣言、
OPEN、
FETCHカーソルの詳細については、、および
CLOSEを参照してください。
構文
<cursor>.<attribute>
備考
次の表で、カーソル属性について説明します。
属性 |
説明 |
ISOPEN |
カーソルが開いているかどうかを示すブール値 |
ROWTYPE |
カーソルのROWデータタイプ。型指定されていないカーソルの場合はNULLです。 |
ROWCOUNT |
カーソルが開いている場合にカーソルからフェッチされた行数。開いていない場合はNULLです。 |
FOUND |
カーソルからの最後のフェッチで行が見つかった場合にtrueとなるブール値。開いていない場合はNULL、または開いていてからフェッチされていない場合はNULLです。 |
例
次の例では、VARCHARのカーソルのnth値を返します。
PROCEDURE nth (IN n INTEGER, IN crs CURSOR(name VARCHAR), OUT name VARCHAR)
a_lab:
BEGIN
IF NOT crs.ISOPEN THEN
OPEN crs;
END IF;
LOOP
FETCH crs INTO name;
IF NOT crs.FOUND OR nth >=crs.ROWCOUNT THEN
LEAVE a_lab;
END IF;
END LOOP;
CLOSE crs;
END
次の例では、ROWTYPE属性を使用しています。
CURSOR m1 IS
SELECT last_name, hire_date, job_id
FROM employees
WHERE employee_id = 5446;
employee_rec m1%ROWTYPE;
BEGIN
OPEN m1;
FETCH m1 INTO employee_rec;
DBMS_OUTPUT.PUT_LINE('Employee name: ' || employee_rec.last_name);
END;