LOB 列のロード

LOAD ユーティリティーは、LOB 列を可変長データとして扱います。 LOB 列の長さの値は 4 バイトでなければなりません。

プロシージャー

LOB 列をロードするには、以下のようにします。

以下のアクションのいずれかを行います。
  • 入力データ・セットから直接 LOB 値をロード: 入力データ・セットから直接 LOB 値をロードするには、以下のようにします。
    1. この入力データ・セットに、LOB 長を含む 4 バイトの 2 進数フィールドが先頭に付いた LOB 値を組み込みます。
    2. LOAD ステートメントのフィールド指定部分に CLOB、BLOB、または DBCLOB を指定します。 これらのオプションの意味は、入力データ・セット内のフィールドが LOB 値であることを示します。 例えば、 CLOB を RESUME 列にロードするには、 RESUME POSITION(7) CLOBのようなものを指定します。 この指定の意味は、入力データ・セットの位置 7 に CLOB 長とその後ろに RESUME 列にロードする CLOB 値が続くことを示します。
    3. 入力レコードがスパン・レコード・フォーマットの場合、FORMAT SPANNED YES を指定し、フィールド仕様リストの最後に LOB フィールドを指定します。
  • 入力データ・セットにリストされたファイルから LOB 値をロード: あるファイルから LOB 値をロードする場合、32 KB を超える LOB 値にすることができます。 LOB 値をファイルからロードするには、以下のようにします。
    1. 入力データ・セットで、LOB 値が入った各ファイル名を指定します。 各ファイルは PDS、PDSE、または HFS ファイルのいずれかが可能です。
    2. LOAD ステートメントのフィールド指定部分に BLOBF、CLOBF、または DBCLOBF のいずれかを指定します。 例えば、テーブルのRESUME列にLOBをロードするには、 RESUME POSITION(7) VARCHAR CLOBF のような指定を行います。 この仕様は、入力データ・セットの位置 7 に、RESUME 列にロードされる可変長 CLOB を含むファイルの名前が入っていることを示します。
    3. 空の LOB 値を LOB 列に挿入するには、LOAD ステートメントで次のいずれかの項目を指定します。
      • CHAR CLOBF、CHAR BLOBF、または CHAR DBCLOBF に対し空のファイル名
      • VARCHAR CLOBF、VARCHAR BLOBF、または VARCHAR DBCLOBF に対し空のファイル名
      • VARCHAR CLOBF、VARCHAR BLOBF、または VARCHAR DBCLOB に対し長さ 0 のファイル名

      これらの各項目により、LOB が空であることが LOAD ユーティリティーに知らされ、LOAD ユーティリティーは、LOB を補助表スペースに挿入します。 LOAD は、列標識を使用して LOB が空であることを示します。

      このステップは、LOB が NULL ではないことを前提としています。

  • 別の表からのデータのロード: データをあるロケーションから別のロケーションへ、または同一ロケーションでデータをある表から別の表へ転送するには、カーソルを使用します。 データをロードするためのこの方法は、クロスローダー機能と呼ばれます。

    クロスローダー機能の使用時は、LOB 値は 32 KB よりも大きくても構いません。 この方法の場合、DB2 は LOB データ用に独立したバッファーを 使用します。従って、LOB 列当たり 8 バイトのみを保管します。 非 LOB 列の長さの合計に、LOB 列当たり 8 バイトを合計して加えて、それが 32 KB を超えることはできません。