8.2 LOBのデータ・インタフェースを使用するメリット

この項では、LOB用のデータ・インタフェースを使用するメリットについて説明します。

LOBのデータ・インタフェースを使用するメリットは次のとおりです。

  • アプリケーションでLONGデータ型を使用する場合は、既存のアプリケーションへの変更をまったく、またはほとんど必要とせずにLOBデータ型で同じアプリケーションを使用できます。これを行うには、表のLONG列をLOB列に変換します。
  • LOBデータの最大サイズがわかっていて、LOB全体の読取りまたは書込みを行う場合、データ・インタフェースを使用すると最適なパフォーマンスが得られます。データ・インタフェースを使用してピース単位のINSERTまたはフェッチを実行すると、ロケータを取得してデータを読取り/書込みするために個別のラウンドトリップを実行するLOB APIを使用するのとは対照的に、サーバーでは1回のラウンドトリップのみが実行されます。

  • 最初にLOBロケータをフェッチしてからOCILobRead2()をコールするかわりに、1回のOCIStmtFetch()コールでLOBデータを読み取ることができます。これにより、LOBデータを最初から読み取る場合のパフォーマンスが向上します。

  • 配列のバインドおよび定義インタフェースを使用すると、LOBを含む複数の行を1回のラウンドトリップで挿入および選択できます。配列のバインドまたは定義を使用する場合は、LOBデータは、単一ピース、ピース単位またはコールバックを使用して挿入またはフェッチされるかどうかに関係なく、1回のラウンドトリップで複数行が挿入またはフェッチされます。

注意:

アプリケーションでLOBへのランダムまたはピース単位の読取りまたは書込みコールを実行する必要がある場合(つまり、操作のオフセットまたは量を指定する必要がある場合)、データ・インタフェースのかわりにLOB APIを使用します。

次の項のほとんどの例では、print_media表を使用します。次に、print_media表の構造を示します。

図8-1 print_media表

print_media表