DB2 export詳解

路途中的人2012發表於2018-04-27

EXPORT實用程式使用SQL select語句或XQUERY語句抽取資料,並將資訊放到檔案中。可使用輸出檔案移動資料以便執行IMPORTLOAD操作,或者將資料用於分析。

 

EXPORT TO filename OF { IXF | DEL | WSF }

[ LOBS TO lob-path[{,lob-path}…] ]

[ LOBFILE lob-file[{,lob-file}…] ]

[ XML TO xml-path[{,xml-path}…] ]

[ XMLFILE file-name[{,filename}…] ]

[ MODIFIED BY {filetype-mod …} ][ XMLSAVESCHEMA ]

[ METHOD N ( column-name[{,column-name}…] ) ]

[ MESSAGES message-file ]

{ select-statement | XQUERY xquery-statement |

  HIERARCHY{ STARTING sub-table-name |

               (sub-tablename[{,sub-table-name}…])

}

  [ WHERE … ]

 }

filetype-mod:

NODOUBLEDELLOBSINFILECHARDELxCOLDELxDECPLUSBLANKDECPTxDATESISO1234CODEPAGE=xSTRIPLZEROSNOCHARDELLOBSINSEPFILESXMLINSEPFILESXMLCHARXMLGRAPHICXMLNODECLARATIONTIMESTAMPFORMAT=x

說明:1、對於大部分匯出操作,需要提供SELECT語句指定需要進行檢索以便匯出的資料。匯出型別表時,不必顯式發出SELECT語句,而只需要指定層次結構中的子表遍歷順序。

2MODIFIED BY filetype-mod檔案型別修飾符提供了允許更改資料、日期和時間戳記或內碼表格式之類的許多選項,或者已編寫特定資料型別以分隔檔案。

3METHOD引數可指定要用於已匯出資料的不同列名。

4、訊息檔案:EXPORT會將錯誤訊息、警告訊息和參考訊息寫至表中ASCII文字訊息檔案。MESSAGES引數指定這些檔案的名稱。

5、因為EXPORT是嵌入式SQL應用程式並且以內部方式執行SQL訪存,所以應用於SQL操作的最佳化會同時應用於EXPORT實用程式。考慮採用大型緩衝池、建立索引和排序堆的好處,另外,透過將輸出檔案放在容器和日誌裝置外部來儘量降低輸出檔案爭用問題。

6、對參與匯出操作的每個表或檢視,都必須具有DATAACCESS許可權或者CONTROLSELECT特權。

 

示例:

1、以IXF輸出格式將sample資料庫的STAFF表中有關Department 20的職員資訊匯出至exp_sampl_staff.ixf

D:\>db2 export to exp_sampl_staff.ixf of ixf messages msgs.txt select * from staff where dept=20

匯出的行數:4

2、將LOB匯出到DEL檔案。

D:\>db2 export to myfile.del of del lobs to d:\mylobs\ lobfile lobs1,lobs2 modified by lobsinfile select * from emp_photo

SQL3104N  EXPORT 實用程式 正在開始將資料匯出至檔案 "myfile.del"

SQL3105N  Export 實用程式已經完成匯出 "8" 行。

匯出的行數:8

3、將LOB匯出到DEL檔案,對可能無法裝入到第一個目錄中的檔案指定第二個目錄:

D:\>db2 export to myfile.del of del lobs to d:\mylobs1, d:\mylobs2 modified by lobsinfile select * from emp_photo

SQL3104N  EXPORT 實用程式 正在開始將資料匯出至檔案 "myfile.del"

SQL3105N  Export 實用程式已經完成匯出 "8" 行。

匯出的行數:8

4、將資料匯出到DEL檔案,將單引號用作字串定界符,分號用作列定界符,逗號用作小數點。

D:\>db2 export to myfile.del of del modified by chardel'' coldel; decpt, select * from staff

SQL3104N  EXPORT 實用程式 正在開始將資料匯出至檔案 "myfile.del"

SQL3105N  Export 實用程式已經完成匯出 "35" 行。

匯出的行數:35

與不指定修飾符的檔案內容進行對比:

D:\>db2 export to myfile2.del of del select * from staff

SQL3104N  EXPORT 實用程式 正在開始將資料匯出至檔案 "myfile2.del"

SQL3105N  Export 實用程式已經完成匯出 "35" 行。

匯出的行數:35

部分內容對比如下:

myfile2:  10,"Sanders",20,"Mgr  ",7,+98357.50,

myfile:  10;'Sanders';20;'Mgr  ';7;+98357,50;

 

表匯出注意事項:

1、如果出現下列任一情況,那麼某些資訊不會儲存至已匯出IXF檔案:

l     索引列名包含十六進位制值0x2B0x2D

l     該表包含XML列。

l     該表是多維叢集表(MDC)。

l     該表包含表分割槽鍵。

l     由於內碼表轉換,索引名長度超過128個位元組。

l     該表是受保護的。

l     EXPORT命令包含SELECT * FROM tablename以外的操作字串。

l     對匯出實用程式指定了METHOD N引數。

2、如果索引中指定的列名包含-+字元,那麼不會收集索引資訊,並且將返回警告SQL27984WEXPORT實用程式完成處理,並且不會影響已匯出的資料。但是,索引資訊未儲存在IXF檔案中。因此,您必須使用 db2look 實用程式來單獨建立索引。

3、如果匯出的資料超過建立匯出檔案所在檔案系統的可用空間量,匯出操作會失敗。在這種情況下,應該透過在WHERE子句中指定條件來對選擇的資料量進行限制,以使已匯出檔案能夠存放在目標檔案系統中。可以多次執行EXPORT以匯出所有資料。

4、如果未使用IXF檔案格式進行匯出,那麼輸出檔案不包含目標表的描述,但它們包含記錄資料。要重新建立表及其資料,需建立目標表,然後使用LOADIMPORT實用程式填充該表。可使用db2look實用程式來捕獲原始表定義,並生成相應的DDL

 

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29067253/viewspace-2153426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章