LOB ファイル参照変数
ファイル参照変数はホスト変数に似ていますが、統合ファイル・システムのファイルにまたは統合ファイル・システムのファイルから (メモリー・バッファーにまたはメモリー・バッファーからではなく) データを転送するのに使用される点が異なります。
ファイル参照変数は、ファイルを (含むのではなく) 表します。これは、LOB ロケーターが、LOB 値を (含むのではなく) 表すのに似ています。 データベースの照会、更新、および挿入は、ファイル参照変数を使用して単一の LOB 値を格納したり取り出したりすることができます。
ラージ・オブジェクトの場合は、ファイルが通常のコンテナーになります。多くの場合、ほとんどの LOB は、クライアント上のファイルに格納されたデータとして始まり、その後、サーバーのデータベースに移動されます。ファイル参照変数を使用すると、LOB データの移動が容易に行えます。プログラムはファイル参照変数を使用して、LOB データを統合ファイル・システムのファイルからデータベース・エンジンに直接転送します。LOB データの移動を実行するために、ファイルを読み書きするユーティリティー・ルーチンをホスト変数を使用してアプリケーションで作成する必要はありません。
ファイル参照変数にはデータ・タイプ BLOB、CLOB、または DBCLOB があります。これは、データのソース (入力) またはデータのターゲット (出力) として使用されます。ファイル参照変数は、相対ファイル名またはファイルの完全パス名をもつことができます (後者をお勧めします)。ファイル名の長さはアプリケーション・プログラムの中で指定します。ファイル参照変数のデータ長の部分は入力中は使用されません。出力のときに、データ長が、 アプリケーション・リクエスター・コードによって、ファイルに書き込まれる新しいデータの長さに設定されます。
ファイル参照変数を使用するとき、入力と出力の両方に異なるオプションがあります。ファイル参照変数構造の file_options フィールドの設定を行って、ファイルに対するアクションを選択する必要があります。 フィールドに対して割り当てる、入出力の両方をカバーする値の選択を以下に示します。
入力ファイル参照変数を使用するときの値 (C の場合を示します) とオプションを以下に示します。
- SQL_FILE_READ (正規ファイル) - このオプションの値は 2 です。これは、オープン、読み取り、およびクローズができるファイルです。 Db2® UDB は、ファイルをオープンするときに、ファイルの中のデータの長さ (バイト数) を判断します。次に、Db2はファイル参照変数構造の data_length フィールドを介して、長さを戻します。COBOL の値は SQL-FILE-READ です。
出力ファイル参照変数を使用するときの値とオプションを以下に示します。
- SQL_FILE_CREATE (新規ファイル) - このオプションの値は 8 です。 このオプションにより、新規ファイルが作成されます。 ファイルがすでに存在する場合には、エラー・メッセージが戻されます。COBOL の値は SQL-FILE-CREATE です。
- SQL_FILE_OVERWRITE (上書きファイル) - このオプションの値は 16 です。 新規ファイルがない場合、このオプションにより新規ファイルが作成されます。ファイルがすでに存在する場合は、ファイルの中のデータは新しいデータで上書きされます。COBOL の値は SQL-FILE-OVERWRITE です。
- SQL_FILE_APPEND (付加ファイル) - このオプションの値は 32 です。 このオプションにより、ファイルがある場合には、そのファイルに出力が付加されます。ファイルがない場合は、新しいファイルが作成されます。COBOL の値は SQL-FILE-APPEND です。