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

DB2 外部文件格式详解:定界 ASCII、固定长度 ASCII、PC/IXF 二进制格式

     編輯:DB2 教學

概述

DB2 `IMPORT`/`LOAD`/`EXPORT` 支援三大類外部文件格式。選擇正確格式能避免導入失敗、編碼亂碼、跨平台不兼容等問題。

一、定界 ASCII (Delimited ASCII, DEL)

最通用、跨平台兼容性最好,幾乎所有資料庫/工具皆支援。

分隔符規則

  • 字符分隔符:預設雙引號 (`"`) 包裹字符型數據(含分隔符時必須)。
  • 列分隔符:預設逗號 (`,`),可自定義(分號、冒號等),**必須為英文半角字符**。
  • 行分隔符:Windows (`\r\n`) vs Linux/Unix (`\n`),**跨平台導入前務必轉換**(`dos2unix` / `unix2dos`)。

示例

1001,"office",2323,"BeiJing",-233
1002,"Bei,Jing",5000,"Shanghai",0

限制

  • 單列值長度 ≤ 32KB。
  • **不適合二進制數據**(BLOB/CLOB 等)。
  • 跨平台時行結束符不一致易導致「全文變一行」錯誤。

二、固定長度 ASCII (Positional ASCII)

又稱位置文件,無分隔符,每列固定寬度,不足補空格。

特點

  • 第 N 行起始位置 = `固定行長 × (N-1)`。
  • 每列起止位置固定,中文佔 2 字節、英文佔 1 字節,**混合中英極難手工製作**,極易出錯。
  • DB2 導出工具已**不再支援導出此格式**,屬淘汰制式。

建議

**不建議使用**。若必須用,請用專業 ETL 工具生成,勿手工編輯。

三、二進制格式

解決跨平台、跨產品兼容性問題,存儲「數據+表結構定義」。

1. PC/IXF (PC Integrated Exchange Format)

  • 用於**不同作業系統平台間**(Linux ↔ Windows ↔ AIX)的 DB2 表遷移。
  • 二進制存儲,無行結束符差異,攜帶完整 DDL(列名、類型、長度、Nullability)。
  • 命令:EXPORT TO file.ixf OF IXF SELECT ... / IMPORT FROM file.ixf OF IXF INSERT INTO ...

2. WSF (Worksheet Format)

  • DB2 專有格式,用於 **DB2 與 Lotus 產品(1-2-3、SmartSuite)互導**。
  • 同為二進制,但用途不同,**不可混淆使用**。

選擇指南

場景推薦格式理由
同平台、文本工具處理、人工檢查DEL (定界 ASCII)可讀、通用、易調試
跨平台遷移(Linux→Windows)IXF (PC/IXF)二進制無編碼/行結束符問題,自帶 DDL
含 BLOB/CLOB 二進制大對象IXFDEL 不支援二進制列
與 Lotus 互導WSF專用格式

總結

**90% 場景用 DEL 即可**,只需注意字符分隔符、列分隔符、行結束符跨平台轉換。**跨平台遷移或含二進制列時必選 IXF**。固定長度 ASCII 已淘汰,勿用。WSF 僅限 Lotus 互導場景。

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