ファイル参照変数は、メモリー・バッファーでなくクライアント・ファイルの内外へデータを転送するために使用される場合以外は、ホスト変数と同様です。ファイル参照変数は、LOB ロケーターが LOB 値を (含むのではなく) 表すのと同様に、ファイルを (含むのではなく) 表します。データベースの照会、更新および挿入を行うと、単一の LOB 値を保管または検索するためにファイル参照変数が使用される場合があります。
オブジェクトが非常に大きい場合は、ファイルは本来のコンテナーとなります。実際、ほとんどの LOB は、サーバー上でデータベースへ移動される前に、クライアント上でファイルに保管されたデータとして開始するでしょう。ファイル参照変数を使用して、LOB データの移動を補助することができます。プログラムは、クライアント・ファイルからデータベース・エンジンへ直接 LOB データを転送するためにファイル参照変数を使用します。クライアント・アプリケーションは、LOB データの移動を実行するために、ホスト変数 (これにはサイズ制限がある) を使用してファイルの読み込みおよび書き込みを行うユーティリティー・ルーチンを作成する必要はありません。
注: | ファイル参照変数によって参照されるファイルは、プログラムを実行するシステムからアクセス可能 (しかし必ずしも常駐である必要はない) でなければなりません。ストアード・プロシージャーの場合、これはサーバーに当たります。 |
ファイル参照変数には BLOB、CLOB、DBCLOB というデータ・タイプがあります。これはデータ (入力) のソースまたは、データ (出力) のターゲットのどちらかとして使用されます。ファイル参照変数には、ファイルの相対ファイル名か絶対パス名を指定できます。 (後者をお勧めします。) ファイル名の長さは、アプリケーション・プログラム内で指定されます。ファイル参照変数のデータ長の一部は、入力中は使用されません。出力中はデータ長は、アプリケーション・リクエスター・コードによって、ファイルに書き込まれる新規データの長さに設定されます。
ファイル参照変数を使用する場合、入出力の両方に様々なオプションがあります。ファイル参照変数構造に file_option フィールドを設定することにより、ファイルの処置を選択することが必要です。次に、入出力両方の値の場合に当てはまるフィールドの指定のための選択肢を示します。
入力ファイル参照変数を使用する場合の値 (示されているのは C 用) とオプションは次のとおりです。
出力ファイル参照変数を使用する場合の値とオプションは次のとおりです。
注:
ファイル参照変数の詳細については、 SQL 解説書 を参照してください。