IBM Support

[Db2] CLOB の EXPORT で SQL3132W が返る場合の対応方法

Question & Answer


Question

CLOB 列を含む表のデータをエクスポートしようとしたところ、SQL3132W で切り捨てられてしまい、データをひとつのファイルにエクスポートすることができません。対応方法を教えてください。

$ db2 "export to emp_resume.csv of del select * from emp_resume"
SQL3132W 列 "CLOB" の文字データがサイズ "32700" に切り捨てられます。 
SQL3104N エクスポート・ユーティリティーが。ファイル"emp_resume.csv" へのデータエクスポートを開始しています。 
SQL315N エクスポート・ユーティリティーが。"100" 行のエクスポートを完了しました。 エクスポートされた行数: 100

Cause

SQL3132W メッセージは、エクスポートできるデフォルトの最大文字列より長い定義サイズがあり、指定されたサイズに切り捨てられたことを意味します。

ラージ・オブジェクト (LOB) 列が含まれている表をエクスポートする場合は、1 つの LOB 値につき最大で 32 KB までのデータをエクスポートし、そのデータと残りの列データを同じファイルに格納するのがデフォルトのアクションになります。32 KB を超える LOB 値をエクスポートする場合は、切り捨てを避けるために、LOB データを別のファイルに書き込む必要があります。

Answer

LOB データをエクスポートするには MODIFIED BY オプションでファイル・タイプ修飾子を指定しますが、2つの方法があります。

構文
EXPORT TO [エクスポート先ファイル] OF [データ形式指定] LOBS TO [LOB デー タ出力先指定] LOBFILE [LOBデータファイル接頭辞指定] MODIFIED BY [ファイル・タイプ修飾子] [SELECT文]

1) lobsinfile ファイル・タイプ修飾子
エクスポートするデータをインポートする前提であれば、lobsinfile ファイル・タイプ修飾子を使用します。1 つのファイルに複数のデータがまとめて書き込まれます。

実行例)

db2 "export to emp_resume.csv of del lobs to /work/clob lobfile emp_resume.lob modified by lobsinfile select * from emp_resume"


2) lobsinsepfiles ファイル・タイプ修飾子
個々の LOB データを 別々のファイル書き込むようにするためには、 lobsinsepfiles ファイル・タイプ修飾子を使用します。

実行例)

db2 "export to emp_resume.csv of del lobs to /work/clob lobfile emp_resume.lob modified by lobsinsepfiles select * from emp_resume"

上記のコマンドを実行した場合、 /work/clob には以下のような *lob ファイルが LOB データごとに別々に生成されます。 (emp_resume 表には8レコード存在します)
emp_resume.lob.001.lob  emp_resume.lob.003.lob  emp_resume.lob.005.lob  emp_resume.lob.007.lob
emp_resume.lob.002.lob  emp_resume.lob.004.lob  emp_resume.lob.006.lob  emp_resume.lob.008.lob

LOB/CLOB データ・タイプの列がひとつだけ存在する表で、すべてのレコードに LOB データが格納されている場合は、 レコード数分の lob ファイルが生成されます。 ただし、LOB データが NULL の場合は、lob ファイルは生成されません。

レコードごとの lob ファイルの紐付けについては、 *.csv ファイルの内容よりご確認ください。

emp_resume.csv の内容:

130 ascii emp_resume.lob.001.lob
130 html emp_resume.lob.002.lob
140 ascii emp_resume.lob.003.lob
140 html emp_resume.lob.004.lob
150 ascii emp_resume.lob.005.lob
150 html emp_resume.lob.006.lob
190 ascii emp_resume.lob.007.lob
190 html emp_resume.lob.008.lob


運用上の考慮点

LOB データのエクスポート/インポートに関する考慮事項は以下のマニュアルページをあわせて参照ください。


関連情報
パスポート・アドバンテージによく寄せられる質問
SQL3132W 列 column の文字データがサイズ size に切り捨てられます。
EXPORT コマンド
IMPORT コマンド

お問合せ先
技術的な内容に関して、サービス契約のもと IBM サービス・ラインにお問い合わせください。
IBM サービス・ライン

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008PlGAAU","label":"Data Movement-\u003EExport"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]

Document Information

Modified date:
10 May 2022

UID

swg22017455