4.29.1 OPEN文 形式1の形式と規則
(1) 機能
カーソルを開きます。DECLARE CURSORで宣言したカーソル,又はALLOCATE CURSOR文で割り当てたカーソルを,検索結果の先頭の行の直前に位置づけて,検索結果を取り出せる状態にします。
形式1では,埋込み変数によって,?パラメタに値を与えてカーソルを開きます。
(2) 使用権限
- SELECT権限を持つユーザ
-
カーソル宣言中やALLOCATE CURSOR文に,指定したすべての表に対してSELECT権限を持っている必要があります。
(3) 形式1 <(埋込み変数によって,?パラメタに値を与えて)カーソルを開く場合>
OPEN {カーソル名|拡張カーソル名} 〔USING :埋込み変数〔,:埋込み変数〕…〕
(4) オペランド
(a) {カーソル名|拡張カーソル名}
- カーソル名
-
開くカーソルの名称を指定します。
- 拡張カーソル名
-
開くカーソルを識別する拡張カーソル名を指定します。
拡張カーソル名については,「拡張カーソル名」を参照してください。
(b) USING :埋込み変数〔,:埋込み変数〕…
DECLARE CURSOR中のSELECT文で指定した埋込み変数を別の埋込み変数に変更したい場合は,変更後の埋込み変数を指定します。
PREPARE文で前処理したSELECT文中に指定した?パラメタに値を与える場合は,値を与える埋込み変数を指定します。
DECLARE CURSOR中のSELECT文で指定した埋込み変数,又は?パラメタの値は,カーソルを閉じるまでこのSQL実行時の値が有効です。値を変更したい場合は,一度カーソルを閉じてから,再度開いてください。
USING句で指定した埋込み変数は指定した順序に,カーソル宣言中のSELECT文で指定した埋込み変数と置き換えられます。
USING句で指定した埋込み変数は指定した順序に,前処理したSELECT文で指定した?パラメタに値を与えます。
(5) 留意事項
-
一度開いたカーソルを再度開く場合は,いったんカーソルを閉じてから,再度開いてください。
-
内部的にCLOSE文を発行してカーソルを閉じる契機については,「CLOSE文(カーソルクローズ)」の共通規則1を参照してください。
-
FETCH文を実行する場合は,OPEN文でカーソルを開いてから,そのカーソルに対するFETCH文を実行してください。
-
USING句で埋込み変数を指定する場合は,埋込み変数に値を設定してからOPEN文を実行してください。
-
USING句に指定した埋込み変数が既定文字集合の文字データ型で,かつSELECT文で指定した?パラメタ又は埋込み変数に関連する項目と異なる文字集合の文字データ型の場合,自動的にSELECT文で指定した?パラメタ又は埋込み変数の文字集合に変換します。
-
OPEN文実行時はカーソルの位置づけをし,対応するFETCH文実行時に排他制御をします。
-
カーソル名は,埋込み変数名と同様に,コンパイル単位のモジュール内で有効な名前であり,同じカーソルに対する複数のSQLを,複数のモジュールにわたって使用できません。
-
手続き中では,USING句は指定できません。
-
同一の表に対して,複数のホールダブルカーソルを開くことはできません。
(6) 使用例
在庫表(ZAIKO)の検索結果を取り出すために,カーソル(CR1)を開きます。
OPEN CR1