4.30.1 OPEN文 形式2の形式と規則
(1) 機能
カーソルを開きます。DECLARE CURSORで宣言したカーソル,又はALLOCATE CURSOR文で割り当てたカーソルを,検索結果の先頭の行の直前に位置づけて,検索結果を取り出せる状態にします。
形式2では,SQL記述領域によって?パラメタに値を与えてカーソルを開きます。
(2) 使用権限
- SELECT権限を持つユーザ
-
カーソル宣言中やALLOCATE CURSOR文に,指定したSELECT文に含まれるすべての表に対してSELECT権限を持っている必要があります。
(3) 形式2 <SQL記述領域によって?パラメタに値を与えてカーソルを開く場合>
OPEN {カーソル名|拡張カーソル名} USING DESCRIPTOR 〔:〕SQL記述領域名 〔CHARACTER SET〔:〕文字集合名記述領域名〕
(4) オペランド
(a) {カーソル名|拡張カーソル名}
- カーソル名
-
開くカーソルの名称を指定します。
- 拡張カーソル名
-
開くカーソルを識別する拡張カーソル名を指定します。
拡張カーソル名については,「拡張カーソル名」を参照してください。
(b) 〔:〕SQL記述領域名
- SQL記述領域名
-
PREPARE文で前処理した,SELECT文中で指定した?パラメタの値をSQL記述領域を用いて与えるときに,その入力?パラメタの値を与えるための変数を記述したSQL記述領域の名称を指定します。
SQL記述領域のSQLVAR配列で指定した変数は,指定した順序に,前処理したSELECT文で指定した?パラメタに値を与えます。
(c) 〔CHARACTER SET〔:〕文字集合名記述領域名〕
- 文字集合名記述領域名
-
PREPARE文で前処理した,SELECT文中で指定した?パラメタの値をSQL記述領域を用いて与えるときに,その入力?パラメタの値を与えるための変数の文字集合名を記述した,文字集合名記述領域の名称を指定します。
(5) 留意事項
-
一度開いたカーソルを再度開く場合は,いったんカーソルを閉じてから,再度開いてください。
-
内部的にCLOSE文を発行してカーソルを閉じる契機については,「CLOSE文(カーソルクローズ)」の共通規則1を参照してください。
-
FETCH文を実行する場合は,OPEN文でカーソルを開いてから,そのカーソルに対するFETCH文を実行してください。
-
OPEN文を実行するまでに,UAPはSQL記述領域及び文字集合名記述領域に必要な情報を設定してください。SQL記述領域及び文字集合名記述領域については,マニュアル「HiRDB UAP開発ガイド」を参照してください。
-
カーソル名は,埋込み変数名と同様に,コンパイル単位のモジュール内で有効な名前であり,同じカーソルに対する複数のSQLを,複数のモジュールにわたって使用できません。
-
同一の表に対して,複数のホールダブルカーソルを開くことはできません。
(6) 使用例
在庫表の検索結果を取り出すために,カーソル(CR2)を開きます。ただし,PREPARE文で前処理したSELECT文中で指定した?パラメタの値を与えるための情報(SQLDA)を指定します。
OPEN CR2 USING DESCRIPTOR SQLDA