導出:db2 "export to ./T_GUAR_CERTI_RELA.del of del modified by codepage=1208 select * from ncmis.T_GUAR_CERTI_RELA";
導入:db2 "import from prd_rul_set.del of del MODIFIED BY DELPRIORITYCHAR commitcount 1000000 insert into ncmis.prd_rul_set";
導入:db2 "load from /home/cus_indiv.del of del modified by codepage=1208 delprioritychar usedefaults insert into NCMIS.cus_indiv";
注:Import和Load 都可以將數據導入到DB2服務器中,但是2者是有很大區別的。
Import 其實執行了SQL 的INSERT 操作。和INSERT 操作一樣,Import 執行的時候會激活觸發器,所有的約束會強制實現,而且會使用數據庫的緩衝池。類似Oracle sql*loader工具的常規路徑導入。
Load 工具可以更快的將數據文件導入到數據表中。Load 工具不會與DB2 數據引擎發生交互,所以當使用Load 工具時,不會觸發觸發器也不會使用緩衝池,而且必須單獨實現數據表的約束。Import 工具執行起來比Load 慢是因爲它是低層次的數據操作工具,它分LOAD,BUILD,DELETE 三個階段對硬盤上的數據頁面來進行直接的處理。Load工具類似Oracle sql*loader工具的直接路徑導入。
換行問題解決:
db2使用export導出的del文本中,由於有字段有換行符,load裝入數據時,默認以一行爲一條數據,這樣裝載數據就有問題了。
解決辦法:modified by delprioritychar
如: db2 "load from CUS_INDIV_MODIFY_20190514_1.del of del modified by delprioritychar insert into NCMIS.CUS_INDIV_MODIFY";
db2默認load優先級策略爲:record delimiter ,character delimiter,column delimiter,這樣record delimiter優先級最高,所以原始文件如果有換行的話load就認定爲新的record,如果用戶數據中有換行符,就必須使用delprioritychar改變默認的優先級別,確保“”之間的數據不管有沒有換行符都被認定爲同一條記錄。另外:IXF文件不會出現此問題。