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

DB2 資料移動三部曲:IMPORT、EXPORT、LOAD 完整語法與實戰指南

     編輯:DB2 教學

資料移動概述

DB2 資料移動包含三大操作:匯入、匯出、裝入。匯入與裝入利用 DB2 命令將特定格式檔案資料存入資料庫表;匯出將資料庫表資料存入特定格式檔案。資料移動是不同資料庫管理系統間轉移資料最實用的方法,因所有資料庫均支援通用檔案格式,透過通用介面輕鬆實現跨系統資料轉移。三命令中 EXPORT 最簡單,從表到檔案通常不出錯也無非法資料。

支援的四種檔案格式

  1. ASC(非定界 ASCII):ASCII 字元流,行由行定界符分隔,欄位由起始/結束位置定義
  2. DEL(定界 ASCII):ASCII 字元流,行由行定界符分隔,欄位由欄位定界符分隔,可透過修飾符修改預設定界符
  3. WSF(工作表格式):用於與 Lotus 系列軟體資料交換
  4. PC/IXF(整合交換格式):由變長記錄構成,含標頭、表、欄位描述符、資料記錄

第一部分:資料匯出(EXPORT)

範例 1:基本匯出

EXPORT TO c:org.txt OF DEL SELECT * FROM org

OF DEL 指定輸出檔案類型為定界文字檔;後接 SQL 查詢結果為匯出資料。

範例 2:自訂 DEL 格式控制符

EXPORT TO c:staff.txt OF DEL MODIFIED BY COLDEL$ CHARDEL'' DECPLUSBLANK SELECT * FROM staff

COLDEL$ 欄位間隔符改為 $;CHARDEL'' 字串欄位引用符改為單引號;DECPLUSBLANK 十進位型別前綴正負號改為空格。

範例 3:匯出為 ASC 格式

EXPORT 不直接支援 ASC,需自行轉換:將各資料型別轉定長字串再合併為單一欄位。

CREATE TABLE n(a INT, b DATE, c TIME, d VARCHAR(5), e CHAR(4), f DOUBLE);
INSERT INTO n VALUES(15,'2004-10-21','23:12:23','abc','hh',35.2);
INSERT INTO n VALUES(5,'2004-1-21','3:12:23','bc','hhh',35.672);
EXPORT TO c:test.txt OF DEL SELECT CHAR(a)||CHAR(b)||CHAR(c)||CHAR(d,5)||e||CHAR(f) AS tmp FROM n;

結果類似 ASC 格式,每行前後有雙引號,可用文字工具移除或匯入時忽略。

範例 4:大物件(LOB)資料匯出

EXPORT TO d:myfile.del OF DEL LOBS TO d:lob LOBFILE lobs MODIFIED BY LOBSINFILE SELECT * FROM emp_photo

結果檔案第三欄為 BLOB 指標(如 lobs.001.0.43690/),真實 LOB 資料存於 d:lob 目錄下的 lobs.001、lobs.002 等檔案。LOBS TO 指定大物件儲存路徑(必須預先存在),LOBFILE 指定檔案前綴(DB2 自動追加 .001、.002),必須加 MODIFIED BY LOBSINFILE。

範例 5:匯出資訊記錄至訊息檔

EXPORT TO d:awards.ixf OF IXF MESSAGES d:msgs.txt SELECT * FROM staff WHERE dept = 20

所有匯出資訊(成功、警告、失敗)記錄於 d:msgs.txt,管理員可透過訊息檔排查問題。

範例 6:匯出欄位重新命名

EXPORT TO d:awards.ixf OF IXF METHOD N(c1,c2,c3,c4,c5,c6,c7) MESSAGES d:msgs.txt SELECT * FROM staff WHERE dept=20

預設使用表欄位名,METHOD N 可重新命名各欄位,僅在 IXF/WSF 格式有效,文字檔不支援。

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