Cursor の属性

SQL スクリプトでカーソルの属性を取得できます。カーソルの詳細については、DECLARE CURSOR 型変数 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;