DB2 支援四種外部檔案格式,不同工具支援程度不同:
| 格式 | 說明 | Import | Export | Load |
|---|---|---|---|---|
| DEL (定界) | 行/列分隔符分隔的 ASCII 檔 | ✓ | ✓ | ✓ |
| ASC (固定長度) | 位置型 ASCII,固定欄寬 | ✓ | ✗ | ✓ |
| IXF (PC/IXF) | 二進制格式,含表定義與資料,跨平台首選 | ✓ | ✓ | ✓ |
| WSF (試算表) | Lotus 1-2-3 格式,較少用 | ✓ | ✓ | ✗ |
# 基本語法
export to filename.del of del select * from table where ...
# 字碼頁轉換 (如從 UTF-8 轉 Big5)
export to filename.del of del MODIFIED BY CODEPAGE=1386 select ...
# 時間戳記格式化
export to filename.del of del MODIFIED BY TIMESTAMPFORMAT="yyyy-mm-dd hh:mm:ss tt" select ...
# 批次提交 (每 5 萬筆 commit)
import from filename of del COMMITCOUNT 50000 insert into tabname;
# 批次插入 (每 50 筆一組)
import from filename of del MODIFIED BY COMPOUND=50 insert into tabname;
# 限制匯入筆數
import from filename of del ROWCOUNT 10000 insert into tabname;
# 指定起始位置 (從第 55 筆起匯 1 萬筆)
import from filename of del RESTARTCOUNT 55 ROWCOUNT 10000 insert into tabname;
# 警告閾值控制
import from filename of del WARNINGCOUNT 10 insert into tabname;
# 抑制列警告
import from filename of del MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;
# LOB 檔案路徑
import from filename of del LOBS FROM '/home' insert into tabname;
Import 僅支援 IDENTITYIGNORE(忽略來源值)與 IDENTITYMISSING(自動產生),兩者皆會改變序列值,破壞參考完整性。建議改用 LOAD 處理身分欄位表格。
LOAD CLIENT FROM 'F:s1.del' OF DEL
MODIFIED BY CHARDEL" COLDEL= DECPT?
INSERT INTO "DB2ADMIN"."ZXTABLES"
# 改變預設分隔符優先順序,確保引號內換行不被視為新記錄
LOAD CLIENT FROM 'F:s1.del' OF DEL
MODIFIED BY DELPRIORITYCHAR
INSERT INTO DB2ADMIN.ZXTABLES
# 方式 1:載入後自動備份 (解除暫掛)
LOAD ... INSERT INTO TABLE COPY YES
# 方式 2:標記不可恢復 (無暫掛,但無法時間點復原)
LOAD ... INSERT INTO TABLE NONRECOVERABLE
使用 partitioned db configmode load_only_verify_part part_file_location 參數組合,實現跨節點數量不同的 IXF 平行載入。