首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2外部文件格式全解析:DEL/ASC/IXF/WSF選型指南與跨平台遷移實戰

     編輯:DB2 教學

前言

數據導入導出是DBA高頻操作,文件格式選型直接影響效率與兼容性。DB2支援四大外部格式:DEL(定界ASCII)、ASC(固定長度ASCII)、IXF(PC/IXF二進制)、WSF(工作表單格式)。本文深度解析各格式特性、適用場景與避坑指南。

格式總覽對比

格式類型攜帶元數據跨平台二進制支持最大行長最大列長典型場景
DEL文本否需轉換差無限制32KB異構遷移、文本交換、簡單導入
ASC文本否需轉換差固定32KB歷史系統對接、定長報文
IXF二進制是(表結構+數據)✅ 原生✅ 完美無限制32KBDB2間跨平台遷移、備份歸檔
WSF二進制是✅ 原生✅ 完美無限制32KBDB2與Lotus/1-2-3交換

1. DEL格式:定界ASCII——最通用、最靈活

核心規則

  • 字符分隔符:默認雙引號",包裹字符型數據(含分隔符時必須)
  • 列分隔符:默認逗號,,可自定義(分號、冒號等),必須英文半角
  • 行分隔符:平台相關(WindowsCRLF,LinuxLF),跨平台需轉換

標準示例

1001,"office",2323,"BeiJing",-233
1002,"Bei,Jing",3000,"Shanghai",100  -- 含逗號的字符串必須加引號

關鍵限制與避坑

  • 列值超過32KB將截斷/報錯
  • 二進制數據(圖片、加密串)不適合,轉義複雜且膨脹
  • 跨平台行尾符差異:Windows→Linux需dos2unix或tr -d '\r'轉換,否則識別為單行
  • 字符集編碼必須一致(源文件編碼=目標數據庫代碼頁)

2. ASC格式:固定長度ASCII——正在退出歷史舞台

特點

  • 每行固定字節長,每列固定起止位置(字節偏移量)
  • 不足寬度用空格填充
  • 中英文混排極難控制(中文2-4字節,英文1字節)
  • 手工制作極易出錯,多一空格少一空格皆導入失敗

現狀

DB2導出工具已不再支援ASC導出,僅部分導入工具兼容。不建議新項目使用,歷史系統對接建議轉DEL或IXF。

3. IXF格式:PC/IXF二進制——DB2間遷移首選

核心優勢

  • 攜帶完整表結構定義:列名、類型、長度、可空性、主鍵、索引等
  • 二進制格式天然跨平台:Linux↔AIX↔Windows無需轉換
  • 完美支援二進制數據:BLOB/CLOB直接存儲,無轉義膨脹
  • 載入性能優於文本格式:省去解析開銷

適用場景

  • DB2數據庫間跨平台遷移(如AIX→Linux、Windows→AIX)
  • 大表備份歸檔(含結構定義,單文件可直接LOAD/IMPORT)
  • 包含LOB/二進制數據的表導出

4. WSF格式:工作表單格式——DB2與Lotus生態專用

  • 同為二進制、攜帶元數據、跨平台
  • 專用於DB2與Lotus 1-2-3、SmartSuite等產品數據交換
  • 非通用遷移格式,勿用於DB2間遷移

選型決策樹

  1. DB2→DB2跨平台遷移/備份? → IXF
  2. 含二進制/LOB數據? → IXF
  3. 異構數據庫遷移(Oracle/MySQL→DB2)? → DEL(CSV通用)
  4. 文本交換、第三方系統對接? → DEL
  5. 歷史定長報文系統對接? → ASC(無奈之舉)
  6. Lotus產品交換? → WSF

實戰最佳實踐

-- 導出IXF(含結構)
EXPORT TO /data/t1.ixf OF IXF SELECT * FROM t1;

-- 導入IXF(自動建表)
IMPORT FROM /data/t1.ixf OF IXF CREATE INTO t1;

-- 導出DEL(指定分隔符、字符包裹)
EXPORT TO /data/t1.del OF DEL MODIFIED BY CHARDEL" " COLDEL, SELECT * FROM t1;

-- 導入DEL
IMPORT FROM /data/t1.del OF DEL MODIFIED BY CHARDEL" " COLDEL, INSERT INTO t1;

-- LOAD高性能載入(需數據庫可恢復)
LOAD FROM /data/t1.ixf OF IXF REPLACE INTO t1;

總結

DB2內部遷移首選IXF,異構交換首選DEL,拒絕ASC,WSF專用。跨平台文本文件必做行尾符與字符集轉換。大數據量場景優先LOAD而非IMPORT,並確保數據庫處於可恢復模式(歸檔日誌)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved