CLOSE ステートメント

CLOSE ステートメントは、カーソルをクローズします。 カーソルのオープン時に結果表が作成された場合、その表は破棄されます。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。これは、動的に作成できない実行可能ステートメントです。 コマンド行プロセッサーを使用して呼び出した場合は、一部のオプションを指定できません。詳しくは、『コマンド行 SQL ステートメントおよび XQuery ステートメントの使用』を参照してください。

許可

グローバル変数が参照される場合、ステートメントの許可 ID に、以下のいずれかの権限が含まれている必要があります。
  • モジュールで定義されていないグローバル変数に対する READ 特権
  • モジュールで定義されているグローバル変数のモジュールに対する EXECUTE 特権
カーソルの使用に必要な許可については、 『DECLARE CURSOR』を参照してください。

構文

構文図を読む構文図をスキップするCLOSE cursor-namecursor-variable-name WITH RELEASE

説明

cursor-name
クローズするカーソルを識別します。 DECLARE CURSOR ステートメントの項で説明されているように、 cursor-name は、宣言されたカーソルを指定しなければなりません。 CLOSE ステートメントを実行する場合、カーソルはオープン状態でなければなりません。
cursor-variable-name
クローズするカーソルを識別します。 cursor-variable-name は、カーソル変数を識別する必要があります。CLOSE ステートメントが実行される時点で、cursor-variable-name の基礎となっているカーソルは、オープン状態でなければなりません (SQLSTATE 24501)。cursor-variable-name を使用する CLOSE ステートメントは、コンパウンド SQL (コンパイル済み) ステートメント内でのみ使用できます。
WITH RELEASE
カーソルのために保留されていた、すべてのロックを解放しようとします。 すべてのロックを解放する必要はないことに注意してください。 これらのロックは他の操作または活動のために保留することができます。

カーソルを使用して、C プログラム変数 dnumdname、 および mnum の中に、一度に 1 行ずつ取り出します。 最後にカーソルをクローズします。 再びカーソルをオープンすると、再びその位置は取り出される行の始めになります。
   EXEC SQL DECLARE C1 CURSOR FOR
     SELECT DEPTNO, DEPTNAME, MGRNO
     FROM TDEPT
     WHERE ADMRDEPT = 'A00';

   EXEC SQL OPEN C1;

   while (SQLCODE==0) {                                             .
     EXEC SQL FETCH C1 INTO :dnum, :dname, :mnum;
        .
        .
   }
   EXEC SQL CLOSE C1;