HOLD LOCATOR

HOLD LOCATOR ステートメントを使用すれば、作業単位が変わっても LOB ロケーター変数または XML ロケーター変数が値との関連を保持できるようになります。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込んで使用します。それ以外の使用法はありません。 これを対話式に発行することはできません。これは、動的に準備できる実行可能ステートメントです。ただし、準備済みステートメントを実行するには、USING 文節を指定した EXECUTE ステートメントを使用しなければなりません。 HOLD LOCATOR は、EXECUTE IMMEDIATE ステートメントと併用することはできません。 REXX で指定してはなりません。

権限

権限は不要です。

構文

構文図を読む構文図をスキップする
                 .-,--------.   
                 V          |   
>>-HOLD LOCATOR----variable-+----------------------------------><

説明

変数,...
変数を指定します。この変数は、変数のロケーター変数を宣言する規則に従って宣言されていなければなりません。この変数に、標識変数を指定してはなりません。ロケーター変数のタイプは、バイナリー・ラージ・オブジェクト・ロケーター、文字ラージ・オブジェクト・ロケーター、2 バイト文字ラージ・オブジェクト・ロケーター、XML ロケーターのいずれかでなければなりません。

HOLD LOCATOR ステートメントが実行された後は、変数 リスト内の 各ロケーター変数は保持プロパティーを持つことになります。

この変数には、現在ロケーターが割り当てられている必要があります。 つまり、この作業単位中に (CALL、FETCH、SELECT INTO、SET 変数、または VALUES INTO ステートメントによって) ロケーターが割り当てられていなけ ればならず、それ以降そのロケーターが (FREE LOCATOR ステートメントによ って) 解放されていてはならない、ということです。そうでない場合には、エラーが発生します。

HOLD LOCATOR ステートメントに複数の変数が指定されていて、ロケー ターの 1 つでエラーが発生した場合、どのロケーターも保持されません。

注記

保持プロパティーを持っている LOB ロケーター変数または XML ロケーター変数が解放される (つまり、変数と値の間の関連が除去される) のは、以下の場合です。

  • そのロケーター変数を対象とする SQL FREE LOCATOR ステートメントが実行されたとき。
  • HOLD オプションが指定されていない SQL ROLLBACK ステートメントが実行されたとき。
  • SQL セッションが終了したとき。

従業員表に列 RESUME、HISTORY、および PICTURE が含まれていて、それらの 列の値を表すためのロケーターがプログラムの中で確立されていると想定します。 CLOB ロケーター変数 LOCRES および LOCHIST、および BLOB ロケーター 変数 LOCPIC に、保持プロパティーを与えます。

   HOLD LOCATOR :LOCRES,:LOCHIST,:LOCPIC