4.6 OPENカーソルのオープン

<この節の構成>
(1) 機能
(2) 形式
(3) 注意事項
(4) 使用例

(1) 機能

カーソルを開きます。DECLARE CURSORで宣言したカーソルを,検索結果の先頭の行の直前に位置づけて,検索結果を取り出せる状態にします。

(2) 形式

OPEN文::=OPEN カーソル名 〔USING :埋め込み変数
                 〔,:埋め込み変数〕…〕

(a) カーソル名

開くカーソルのカーソル名を指定します。

(b) USING :埋め込み変数

DECLARE CURSOR中のカーソル指定で指定した埋め込み変数を別の埋め込み変数に変更する場合に,変更後の埋め込み変数を指定します。

DECLARE CURSOR中のSELECT文で指定した埋め込み変数の値は,カーソルを閉じるまで有効になります。したがって,カーソルのオープン中に埋め込み変数の値を更新しても,オープン中のカーソルの問合せ指定に影響を与えません。埋め込み変数の値を変更する場合は,一度カーソルを閉じてから,再度カーソルを開いてください。

USING句で指定する埋め込み変数の数は,カーソル宣言で指定した埋め込み変数の数と一致しなければなりません。

USING句で指定する埋め込み変数は,指定した順序に,カーソル宣言中のSELECT文で指定した埋め込み変数と置き換えられます。

置き換えられる埋め込み変数のデータ型およびデータ長は完全に一致しなければなりません。

(3) 注意事項

  1. 一度開いたカーソルを再度開く場合は,いったんカーソルを閉じてから,再度開いてください。
  2. FETCH文を実行する場合は,OPEN文でカーソルを開いてから,そのカーソルに対するFETCH文を実行してください。
  3. USING句で埋め込み変数を指定する場合は,埋め込み変数に値を設定してからOPEN文を実行してください。
  4. カーソル名は,埋め込み変数名と同様に,コンパイル単位のモジュール内で有効な名前です。同じカーソルに対する複数のSQLを,複数のモジュールにわたって使用できません。
  5. カーソルを開くときに使用する埋め込み変数と標識変数を次の表に示します。

    表4-1 カーソルを開くときに使用する埋め込み変数と標識変数

    項番DECLARE CURSORのカーソル指定OPEN文のUSING句カーソルを開くときに使用する埋め込み変数,標識変数
    埋め込み変数標識変数埋め込み変数
    1指定あり指定あり指定なしDECLARE CURSORで指定した埋め込み変数,標識変数を使用します。
    2指定ありOPEN文で指定した埋め込み変数を使用します。標識変数は使用しません。
    3指定なし指定なしDECLARE CURSORで指定した埋め込み変数を使用します。標識変数は使用しません。
    4指定ありOPEN文で指定した埋め込み変数を使用します。標識変数は使用しません。
    5指定なし埋め込み変数,標識変数は使用しません。
    (凡例)
    -:該当しません。

(4) 使用例

在庫表(ZAIKO)の検索結果を取り出すために,カーソル(CR1)を開きます。

OPEN CR1