DB2導入導出及換行問題解決

導出: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文件不會出現此問題。

發佈了15 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章