在 Oracle 與 DB2 資料庫投入生產前,大量資料建立常透過外部檔案匯入完成。資料庫系統會嚴格檢查外部檔案格式,不符合強制要求將拒絕匯入。本文系統整理 DB2 支援的外部檔案格式與關鍵細節,助 DBA 減輕匯入匯出工作量。
幾乎所有資料庫支援,但分隔符要求各異。DB2 使用分隔符標識資料元素起止位置:
| 分隔符類型 | 用途 | DB2 預設值 | 注意事項 |
|---|---|---|---|
| 字元分隔符 | 界定字元型資料起始位置 | 雙引號 (") | Oracle 自動判斷無需此符號;DB2 必須使用 |
| 列分隔符 | 界定欄位邊界 | 逗號 (,) 英文狀態 | 可自訂冒號、分號等;必須為英文輸入模式符號 |
| 行分隔符 | 界定記錄換行 | 視作業系統而定 | Windows: CRLF;Linux: LF;跨平台需轉換 |
1001,"Office",2323,"BeiJing",-233
關鍵規則:字串值包含列分隔符(如逗號)時,必須用字元分隔符括起。例如 "Bei,Jing" 否則會被誤判為兩個欄位。
使用固定位元組偏移量決定欄位邊界,每筆記錄與欄位長度固定,不足以空白填補。
解決 ASCII 檔案跨作業系統不相容問題(同為 ASCII,Linux/Windows 儲存格式不同)。
| 場景 | 推薦格式 | 理由 |
|---|---|---|
| 同平台、純文字資料、簡單匯入 | 定界 ASCII | 通用、易閱讀、易除錯 |
| 跨平台遷移(Linux↔Windows) | PC/IXF 二進位 | 含結構定義、無編碼相容問題 |
| DB2 與 Lotus/其他產品遷移 | WSF 二進位 | 專為產品間整合設計 |
| 含二進位資料(BLOB/CLOB) | PC/IXF 或 WSF | ASCII 格式不支援二進位 |