ヘッダーをスキップ
Oracle Database PL/SQL言語リファレンス
11g リリース1(11.1)
E05670-03
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

カーソル属性

すべての明示的なカーソルおよびカーソル変数には4つの属性があり、それぞれがデータ操作文の実行に関する有効な情報を戻します。

構文

cursor_attribute ::=

cursor_attribute
cursor_attribute.gifの説明

キーワードとパラメータの説明

cursor_name

現行の有効範囲の中で、事前に宣言されている明示カーソルを識別します。

cursor_variable_name

現行の有効範囲の中で、事前に宣言されているPL/SQLカーソル変数(またはパラメータ)を識別します。

%FOUND属性

カーソル属性で、カーソルまたはカーソル変数の名前に追加できます。 カーソルがオープンされてから最初のフェッチまでのcursor_name%FOUNDは、NULLを戻します。 その後、直前のフェッチが行を戻した場合はTRUEを戻し、直前のフェッチが行を戻さなかった場合はFALSEを戻します。

host_cursor_variable_name

PL/SQLホスト環境で宣言され、バインド引数としてPL/SQLに渡されるカーソル変数を識別します。 ホスト・カーソル変数のデータ型は、PL/SQLカーソル変数の戻り型と互換性があります。 ホスト変数には、接頭辞としてコロンを付けてください。

%ISOPEN属性

カーソル属性で、カーソルまたはカーソル変数の名前に追加できます。 カーソルがオープンされていると、cursor_name%ISOPENTRUEを戻し、それ以外の場合はFALSEを戻します。

%NOTFOUND属性

カーソル属性で、カーソルまたはカーソル変数の名前に追加できます。 カーソルがオープンされてから最初のフェッチまでのcursor_name%NOTFOUNDは、NULLを戻します。 その後、直前のフェッチが行を戻した場合はFALSEを戻し、直前のフェッチが行を戻さなかった場合はTRUEを戻します。

%ROWCOUNT属性

カーソル属性で、カーソルまたはカーソル変数の名前に追加できます。 カーソルがオープンされると%ROWCOUNTは0(ゼロ)になります。 最初のフェッチまでは、cursor_name%ROWCOUNTは0(ゼロ)を戻します。その後は、これまでにフェッチした行数を戻します。 フェッチで行が戻されるたびに、数値は増加します。

使用上の注意

カーソルの属性は、すべてのカーソルおよびカーソル変数に適用されます。 たとえば、複数のカーソルをオープンし、%FOUNDまたは%NOTFOUNDを使用して、まだフェッチしていない行が残っているカーソルがどれかを判別できます。 同様に、%ROWCOUNTを使用して、これまでにフェッチした行の数を知ることができます。

カーソルまたはカーソル変数をオープンしていない場合、%FOUND%NOTFOUNDあるいは%ROWCOUNTでカーソルやカーソル変数を参照すると、事前定義の例外INVALID_CURSORが呼び出されます。

カーソルまたはカーソル変数をオープンすると、対応する問合せを満たす行が識別され、結果セットが形成されます。 行は、結果セットから一度に1行ずつフェッチされます。

SELECT INTO文が複数の行を戻した場合、PL/SQLによって事前定義の例外TOO_MANY_ROWSが呼び出され、%ROWCOUNTは、問合せを満たす行の実数ではなく、1に設定されます。

最初のフェッチの前は、%NOTFOUNDの評価結果はNULLです。 FETCHが正常に実行されない場合は、EXIT WHEN条件がTRUEとならず、ループは終了しません。 安全のために、次のEXIT文をかわりに使用できます。

EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL;

カーソル属性は、プロシージャ文では使用できますが、SQL文では使用できません。

関連トピック