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

DB2 資料移動實戰(二):IMPORT 匯入完整指南

     編輯:DB2 教學

承接上篇「Export 匯出」,本文深入解析 IMPORT 指令的多種檔案格式、插入模式與空值處理技巧,助您高效將外部資料載入 DB2 資料表。

一、基本語法對照

IMPORT 與 EXPORT 結構對應:FROM 對應 TO,檔名與格式意義相同。差異在於 IMPORT 支援 ASC 定長格式,且尾端指定「插入模式 + 目標表」而非 SQL 查詢。

二、範例速查

1. DEL 格式基本匯入

IMPORT FROM C:\ORG.TXT OF DEL INSERT INTO ORG;

2. ASC 定長格式匯入

IMPORT FROM C:\ORG2.TXT OF ASC
  METHOD L(1 5, 6 19, 20 25, 26 37, 38 50)
  INSERT INTO ORG;

METHOD L 指定各欄位「起始位置 結束位置」,欄位間以逗號分隔。

3. IXF 格式 + METHOD N(依欄位名稱)

先匯出帶欄位名稱的 IXF:

EXPORT TO D:\ORG.IXF OF IXF METHOD N(A,B,C,D,E) SELECT * FROM ORG;

再匯入時重新排序、甚至建立新表:

IMPORT FROM D:\ORG.IXF OF IXF METHOD N(D,E,B)
  REPLACE_CREATE INTO ORGTEST;

REPLACE_CREATE:表存在則清空重灌,不存在則依檔案欄位自動建表(僅限 IXF)。

4. IXF 格式 + METHOD P(依欄位位置)

IMPORT FROM D:\ORG.IXF OF IXF METHOD P(4,5,2) REPLACE INTO ORGTEST;

METHOD P 直接指定來源檔第 4、5、2 欄,無須欄位名稱。

三、四種插入模式比較

模式適用情境備註
INSERT純新增,保留既有資料預設模式
INSERT_UPDATE有主鍵的表,主鍵衝突則更新需表有主鍵
REPLACE全量重灌,先刪除所有資料速度較快,但會觸發 Delete Trigger
REPLACE_CREATE表不存在時自動建表再灌資料僅支援 IXF 格式

四、ASC 格式空值處理

ASC 檔案無法直接表達 NULL,DB2 會把空白當成空字串。解法:使用 NULL INDICATORS + MODIFIED BY NULLINDCHAR。

IMPORT FROM C:\ORG2.TXT OF ASC
  MODIFIED BY NULLINDCHAR=#
  METHOD L(1 5, 6 19, 20 25, 26 37, 38 50)
  NULL INDICATORS(0,0,0,0,38)
  REPLACE INTO ORG;
  • NULL INDICATORS(0,0,0,0,38):前四欄無 NULL,第 5 欄從第 38 字元開始判斷。
  • NULLINDCHAR=#:若第 5 欄第 38 字元為 #,視為 NULL。

五、下一步預告

下篇將介紹 LOAD 指令:高速大量載入、掛起狀態處理、與 IMPORT 的效能差異分析。

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