概念的には、LOB ロケーターはこれまでにあった単純な考えを表すものです。すなわち、はるかに大きな値を参照する小さくて管理しやすい値を使用します。具体的には、LOB ロケーターはホスト変数に保管されている 4 バイトの値で、プログラムはこのホスト変数を使用してデータベース・システム中に保留されている LOB 値 (または LOB 式) を参照することができます。プログラムは、 LOB ロケーターを使用して LOB 値が標準ホスト変数に保管されているかのように操作できます。 LOB ロケーターを使用する場合の相違点は、 LOB 値をサーバーからアプリケーションへ移送する (そして再度戻す) 必要がないということです。
LOB ロケーターは、データベース中の列または物理記憶域の場所ではなく、 LOB 値または LOB 式に関連しています。そのため、ロケーターに LOB 値を設定した後は、元の列または表上で、そのロケーターによって参照される値に影響を及ぼすような操作を行うことはできません。ロケーターに関連する値は、作業単位が終了するまで、または最初にくるロケーターが明示的に解放されるまで有効です。 FREE LOCATOR ステートメントは、ロケーターをその値から解放します。同様に、コミットまたはロールバック操作は、トランザクションに関連したすべての LOB ロケーターを解放します。
LOB ロケーターは、DB2 と UDF の間で渡すこともできます。 UDF が LOB ロケーターを使用して LOB 値を操作する際に用いられる特殊な API があります。これらの API の詳細については、UDF のパラメーターや結果としての LOB ロケーターの使用を参照してください。
LOB 値を選択する際には、次の 3 つのオプションがあります。
プログラム内で LOB 値を使用すると、プログラマーが最適な手段を決めるのに役立ちます。 LOB 値が非常に大きく、次の 1 つまたは複数 SQL ステートメントの入力値としてのみ必要な場合は、ロケーターの中に値を保持するのが最も良い方法です。ロケーターを使用すると、LOB 値をホスト変数へ転送しサーバーへ戻すために必要な、すべてのクライアント / サーバー通信の通信量を除去します。
すべての LOB 値が、そのサイズにかかわらずプログラムに必要な場合は、必ず LOB を転送しなければなりません。この場合でも、3 つのオプションが使用可能です。標準またはファイル・ホスト変数にすべての値を指定できますが、次の例に示すようにロケーターに LOB 値を指定し、それをロケーターから標準ホスト変数へ少しずつ読み込む方が良いでしょう。