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;