DB2 資料移動包含三大操作:匯入、匯出、裝入。匯入與裝入利用 DB2 命令將特定格式檔案資料存入資料庫表;匯出將資料庫表資料存入特定格式檔案。資料移動是不同資料庫管理系統間轉移資料最實用的方法,因所有資料庫均支援通用檔案格式,透過通用介面輕鬆實現跨系統資料轉移。三命令中 EXPORT 最簡單,從表到檔案通常不出錯也無非法資料。
EXPORT TO c:org.txt OF DEL SELECT * FROM org
OF DEL 指定輸出檔案類型為定界文字檔;後接 SQL 查詢結果為匯出資料。
EXPORT TO c:staff.txt OF DEL MODIFIED BY COLDEL$ CHARDEL'' DECPLUSBLANK SELECT * FROM staff
COLDEL$ 欄位間隔符改為 $;CHARDEL'' 字串欄位引用符改為單引號;DECPLUSBLANK 十進位型別前綴正負號改為空格。
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 格式,每行前後有雙引號,可用文字工具移除或匯入時忽略。
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。
EXPORT TO d:awards.ixf OF IXF MESSAGES d:msgs.txt SELECT * FROM staff WHERE dept = 20
所有匯出資訊(成功、警告、失敗)記錄於 d:msgs.txt,管理員可透過訊息檔排查問題。
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 格式有效,文字檔不支援。