Hitachi

ノンストップデータベース HiRDB Version 10 UAP開発ガイド


4.16.1 位置付け子機能とは

クライアントのUAPで,検索したBLOBデータ又はBINARYデータをそのデータ型の埋込み変数で受け取る場合,受け取ったデータを格納するためのメモリ領域をクライアント側で用意する必要があります。このため,長大なデータを検索する場合,クライアント側のメモリ資源を圧迫します。さらに,サーバからクライアントへのデータ転送量も大きくなります。しかし,必要なデータが一部だけであったり,受け取ったデータを変更しないでほかのSQL文中に指定してサーバに送り返すだけであったりする場合,データをすべてクライアントに転送することはむだなことになります。

位置付け子機能は,これを解決するために使用する機能です。位置付け子は,サーバ上のデータを識別する4バイトの値のデータであり,1行SELECT文やFETCH文のINTO句などに位置付け子の埋込み変数を指定することで,検索結果としてデータの実体ではなく,そのデータを識別する位置付け子の値を受け取ります。また,データを識別する位置付け子の埋込み変数をほかのSQL文中に指定することで,位置付け子が識別するデータを扱う処理ができます。

位置付け子機能の概要を次の図に示します。

図4‒75 位置付け子機能の概要

[図データ]

[説明]

位置付け子機能を使用しない場合:
  1. DBから検索したBLOBデータを,サーバからクライアントに転送します。

  2. クライアントからサーバにBLOBデータを転送し,それをDBに格納します。

位置付け子機能を使用する場合:
  1. サーバが,DBから検索したデータを識別する位置付け子データを作成します。

  2. 位置付け子データを,サーバからクライアントに転送します。

  3. クライアントからサーバに位置付け子データを転送します。

  4. 位置付け子データが識別するサーバ上のBLOBデータをDBに格納します。