Hitachi

ノンストップデータベース HiRDB Version 9 SQLリファレンス


4.7.1 CLOSE文の形式と規則

〈この項の構成〉

(1) 機能

カーソルを閉じ,FETCH文による検索結果の取り出しを終わらせます。

(2) 使用権限

なし。

(3) 形式

 CLOSE {カーソル名|拡張カーソル名}

(4) オペランド

(a) {カーソル名|拡張カーソル名}

カーソル名

閉じるカーソル名を指定します。閉じるカーソルとは,OPEN文で開いているカーソルです。

拡張カーソル名

閉じるカーソルを識別する拡張カーソル名を指定します。閉じるカーソルとは,OPEN文で開いているカーソル,又は手続きから返却された結果集合の組に割り当てられ,結果集合を参照しているカーソルです。

拡張カーソル名については,「拡張カーソル名」を参照してください。

(5) 共通規則

  1. 次のSQLを実行した場合,その時点で開いているカーソルはすべて閉じられます。また,暗黙的ロールバックありのエラーが発生した場合にも,カーソルはすべて閉じられます。

    • 定義系SQL(クライアント環境定義PDCMMTBFDDLにYESを指定している場合)

    • PURGE TABLE文

    • COMMIT文

    • DISCONNECT文

    • ROLLBACK文

    • PREPARE文(クライアント環境定義PDPRPCRCLSにYESを指定している場合)

    • 内部DISCONNECT(DISCONNECT文を実行しないでUAPを終了する)

    ただし,ホールダブルカーソルは,COMMIT文を実行した場合は閉じられません。PURGE TABLE文を実行し,ホールダブルカーソルで開いている表が検査保留状態に設定された場合,ホールダブルカーソルは閉じられます。

  2. ALLOCATE CURSOR文 形式2で手続きが返却した結果集合の組に割り当てられたカーソルに対してCLOSE文を実行した場合,現在参照している結果集合の次の結果集合が存在するときは,現在参照している結果集合は閉じられます。カーソルは次の結果集合を参照し,次のリターンコードが設定されます。

    • SQL連絡領域のSQLCODE領域に121

    • SQLCODE変数に121

    • SQLSTATE変数に'0100D'

    また,このときカーソルは開いた状態となります。

    一方,次の結果集合が存在しない場合は,現在参照している結果集合は閉じられ,次のリターンコードが設定されます。

    • SQL連絡領域のSQLCODE領域に100

    • SQLCODE変数に100

    • SQLSTATE変数に'02001'

    また,このとき拡張カーソル名はどのカーソルも識別しなくなります。

    手続きから返却された結果集合の組に対してカーソルを割り当てた場合の一連の操作については,「結果集合返却機能」を参照してください。

(6) 留意事項

  1. カーソル名は,埋込み変数名と同様に,コンパイル単位のモジュール内で有効な名前であり,同じカーソルに対する複数のSQLを,複数のモジュールにわたって使用できません。

(7) 使用例

カーソル(CR1)を閉じます。

CLOSE CR1