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

DB2 匯出 LOB 大物件資料完整操作指南

     編輯:DB2 教學

含 LOB 欄位的資料表匯出有特殊規則:超過 32KB 的 LOB 不會寫入主匯出檔,而是分離存放於指定目錄的獨立檔案。本文詳細說明 EXPORT 指令的 LOB 專屬選項、檔案命名規則、容量規劃公式與分批匯出策略。

場景設定

員工資訊表 USER_INFO:

  • EMP_ID (PK)
  • EMP_NAME
  • ID_CARD_COPY — LOB (BLOB/CLOB),身分證影本,單檔常超 32KB

LOB 匯出指令語法

EXPORT TO user_info.ixf OF IXF
LOB TO d:\photo1, d:\photo2
LOGFILE p1, p2
MODIFIED BY lobsinfile
SELECT * FROM USER_INFO;

關鍵選項解析

選項功能備註
LOB TO指定 LOB 檔案儲存目錄 (可多個,逗號分隔)未指定則用當前目錄
LOGFILE指定 LOB 檔案基本名稱前綴 (可多個,逗號分隔)系統自動加 3 位數字尾碼 (p1001, p1002...),未指定預設 db2exp
MODIFIED BY lobsinfile強制將 LOB 分離寫入外部檔案主匯出檔僅存 LOB 檔名參考

檔案命名機制與容量規劃

  • 每個 LOB 欄位值 → 1 個獨立檔案;
  • 單一基本名稱 (前綴) 可生成 1000 個檔名 (000-999);
  • 同一前綴可在不同目錄重複使用 (目錄不同視為不同命名空間);
  • 可用檔名總數 = 前綴個數 × 目錄個數 × 1000

實例試算

表含 2 個 LOB 欄位,20,000 筆 → 需 40,000 個 LOB 檔案。
指定 2 目錄 × 2 前綴 × 1000 = 4,000 檔名 不足。
需擴充:5 目錄 × 8 前綴 × 1000 = 40,000 剛好;或 10 目錄 × 4 前綴 × 1000 = 40,000。

原則:可用檔名 ≥ 預估 LOB 段數,寧多勿少,否則匯出失敗且難以定位缺漏。

分批匯出策略 (大量 LOB 必讀)

LOB 匯出耗時極長,建議在 SELECT 加入篩選條件分批:

  • 按部門、性別、入職年份等業務維度切分;
  • 優點:單次耗時可控、失敗影響面小、LOB 檔名分布有規律便於後續對應。

避坑清單

  1. 預估 LOB 總段數 (LOB欄位數 × 筆數),反推目錄/前綴數量;
  2. 確保目標磁碟空間足夠 (LOB 檔案總大小 + 10% 餘量);
  3. 檔名尾碼固定 3 位數字,**不可擴展為 4 位**;
  4. 同一目錄下檔名不可重複,跨目錄可重複;
  5. 匯出前關閉應用連線,避免資料不一致;
  6. 匯出後驗證:主檔筆數 = 查詢筆數,LOB 檔案數 = LOB欄位數 × 筆數 (扣除 NULL)。

掌握上述規則,DB2 LOB 匯出不再踩雷,資料遷移、備份歸檔皆能得心應手。

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