4.7.1 CLOSE文の形式と規則
(1) 機能
カーソルを閉じ,FETCH文による検索結果の取り出しを終わらせます。
(2) 使用権限
なし。
(3) 形式
CLOSE {カーソル名|拡張カーソル名}
(4) オペランド
(a) {カーソル名|拡張カーソル名}
- カーソル名
-
閉じるカーソル名を指定します。閉じるカーソルとは,OPEN文で開いているカーソルです。
- 拡張カーソル名
-
閉じるカーソルを識別する拡張カーソル名を指定します。閉じるカーソルとは,OPEN文で開いているカーソル,又は手続きから返却された結果集合の組に割り当てられ,結果集合を参照しているカーソルです。
拡張カーソル名については,「拡張カーソル名」を参照してください。
(5) 共通規則
-
次のSQLを実行した場合,その時点で開いているカーソルはすべて閉じられます。また,暗黙的ロールバックありのエラーが発生した場合にも,カーソルはすべて閉じられます。
-
定義系SQL(クライアント環境定義PDCMMTBFDDLにYESを指定している場合)
-
PURGE TABLE文
-
COMMIT文
-
DISCONNECT文
-
ROLLBACK文
-
PREPARE文(クライアント環境定義PDPRPCRCLSにYESを指定している場合)
-
内部DISCONNECT(DISCONNECT文を実行しないでUAPを終了する)
ただし,ホールダブルカーソルは,COMMIT文を実行した場合は閉じられません。PURGE TABLE文を実行し,ホールダブルカーソルで開いている表が検査保留状態に設定された場合,ホールダブルカーソルは閉じられます。
-
-
ALLOCATE CURSOR文 形式2で手続きが返却した結果集合の組に割り当てられたカーソルに対してCLOSE文を実行した場合,現在参照している結果集合の次の結果集合が存在するときは,現在参照している結果集合は閉じられます。カーソルは次の結果集合を参照し,次のリターンコードが設定されます。
-
SQL連絡領域のSQLCODE領域に121
-
SQLCODE変数に121
-
SQLSTATE変数に’0100D’
また,このときカーソルは開いた状態となります。
一方,次の結果集合が存在しない場合は,現在参照している結果集合は閉じられ,次のリターンコードが設定されます。
-
SQL連絡領域のSQLCODE領域に100
-
SQLCODE変数に100
-
SQLSTATE変数に’02001’
また,このとき拡張カーソル名はどのカーソルも識別しなくなります。
手続きから返却された結果集合の組に対してカーソルを割り当てた場合の一連の操作については,「結果集合返却機能」を参照してください。
-
(6) 留意事項
-
カーソル名は,埋込み変数名と同様に,コンパイル単位のモジュール内で有効な名前であり,同じカーソルに対する複数のSQLを,複数のモジュールにわたって使用できません。
(7) 使用例
カーソル(CR1)を閉じます。
CLOSE CR1