同じ構造の 2 つの異なるデータベースに 2 つのテーブルがあります。
1 つのテーブルを .dat ファイルにエクスポートしてから、db2 import コマンドを使用して別のテーブルにインポートしています。
import from $TEMP_DIR/TO_IMPORT.dat of del modified by dateformat=\"YYYY-MM-DD\" timeformat=\"HH:MM:SS\" timestampformat=\"YYYY-MM-DD HH:MM:SS.UUU\" chardel0x01 coldel| COMMITCOUNT 1000 messages $LOG_DIR/to_import.log insert into MY_SCHEMA.MY_TABLE
TO_IMPORT.dat の行は次のとおりです。
col1_val|col2_val|col3_val|col4_val|col5_val
区切り文字は「|」です
col1、col2、col3 は、ソース テーブルと宛先テーブルの NOT NULL 列です。
ただし、ソース テーブルの一部の行では、col2 と col3 に文字値ではなくスペースが含まれています。
これらは、以下のように .dat ファイルで提供されます。
abc| | |def|pqr
現在、上記の行のインポート中に、これらのスペースは NULL と見なされるため、宛先テーブルの null 以外の列に null 値を挿入しようとするとすべてが失敗します。
この問題の解決策/回避策は何ですか?
読んでくれてありがとう!