LOB エクスポートに関する考慮事項
ラージ・オブジェクト (LOB) 列が含まれている表をエクスポートする場合は、1 つの LOB 値につき最大で 32 KB までのデータをエクスポートし、そのデータと残りの列データを同じファイルに格納する、というのがデフォルトのアクションになります。 32 KB を超える LOB 値をエクスポートする場合は、切り捨てを避けるために、LOB データを別のファイルに書き込む必要があります。
LOB をそれ自体のファイルに書き込むことを指定するには、lobsinfile
ファイル・タイプ修飾子を使用します。 この修飾子を指定すると、エクスポート・ユーティリティーは、LOBS TO 節で指定されているディレクトリーに LOB データを格納します。 LOB TO または LOB ファイル を使うと、lobsinfile
ファイル・タイプ修飾子が暗黙的にアクティブ化されます。 デフォルトで、LOB 値は、エクスポート・リレーショナル・データが書き込まれるのと同じパスに書き込まれます。 LOBS TO オプションに 1 つ以上のパスが指定されていると、エクスポート・ユーティリティーは、各パスの間を循環し、正常な LOB 値をそれぞれ適切な LOB ファイルに書き込みます。 さらに、LOBFILE オプションを使用して、出力 LOB ファイルの名前を指定することもできます。 LOBFILE オプションが指定されている場合、lobfilename のフォーマットは lobfilespec.xxx.lob
となります。ここで lobfilespec
は LOBFILE オプションに指定された値であり、xxx
はエクスポート・ユーティリティーによって生成された LOB ファイルのシーケンス番号です。 それ以外の場合、lobfilename は exportfilename.xxx.lob
のフォーマットになります。ここで、exportfilename
は EXPORT コマンドに指定されたエクスポートされる出力ファイルの名前であり、xxx
はエクスポート・ユーティリティーによって生成された LOB ファイルのシーケンス番号です。
デフォルトの動作では、1 つのファイルに LOB が書き込まれますが、個々の LOB を別々のファイルに格納するように指定することも可能です。 エクスポート・ユーティリティーは、複数の LOB を 1 つのファイルに格納する動作を有効にするために、LOB ロケーション指定子 (LLS) を生成します。 この LLS は、LOB データをファイル内のどこに格納するのかを指定したストリングであり、エクスポート出力ファイルに書き込まれます。 LLS の形式は lobfilename.ext.nnn.mmm/
です。ここで、 lobfilename.ext
は LOB が入っているファイルの名前、 nnn
はファイル内の LOB のオフセット (バイト単位で測定)、mmm は LOB の長さ (バイト単位で測定) です。 例えば、LLS が db2exp.001.123.456/
である場合、
これは、LOB がファイル db2exp.001 にあり、
ファイル内の 123 バイトのオフセットで始まり、
長さが 456 バイトであることを示します。 LLSに示されたサイズが0である場合、LOBの長さは0であると見なされます。 長さが -1 の場合、LOB は NULL と見なされ、オフセットとファイル名は無視されます。
個々のLOBデータを同じファイルに連結したくない場合は、lobsinsepfiles
ファイルタイプ修飾子を使用して、各LOBを個別のファイルに書き込みます。
以下の例は、LOB (エクスポートされた LOB ファイルのベース名が lobs1である場合) を DEL ファイルにエクスポートする方法を示しています。
db2 export to myfile.del of del lobs to mylobs/
lobfile lobs1 modified by lobsinfile
select * from emp_photo
次のの例は、LOBをDELファイルにエクスポートする方法を示しています。各LOB値は別個のファイルに書き込まれ、LOB ファイルは2つのディレクトリーに書き込まれます。
db2 export to myfile.del of del
lobs to /db2exp1/, /db2exp2/ modified by lobsinfile
select * from emp_photo