3. 批量插入
MODIFIED BY COMPOUND把文件中的 COMPOUND 行記錄作為一組一起導入,這個操作可以和上邊的批量提交一起使用,比較理想。
例:Import from filename of del MODIFIED BY COMPOUND =50 insert into tabname;
4. 導入記錄限制
ROWCOUNT:只導入rowcount 條數據,有時候,業務邏輯需要只導入部分數據,那麼ROWCOUNT是一個不錯的選擇,只是在我的測試中ROWCOUNT一直沒有起過作用,呵呵,誰熟悉這裡,幫我完善下。
例:Import from filename of del ROWCOUNT 10000 insert into tabname;
5. 導入起點
RESTARTCOUNT:從導入文件的第RESTARTCOUNT條記錄開始導入
例:Import from filename of del RESTARTCOUNT 55 ROWCOUNT 10000 insert into tabname;--從55條開始,導入10000條數據
6. 有警告數據的條數限制
WARNINGCOUNT:當導入的數據中,有警告或錯誤(例如類型不匹配,列不對應等造成的)並且條數超過WARNINGCOUNT是就會停止import。
例:Import from filename of del WARNINGCOUNT 10 insert into tabname;
7. 禁止發出行警告
MODIFIED BY NOROWWARNINGS
例:Import from filename of del MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;
8. LOB 文件
LOBS FROM :指出LOB的路徑
例:Import from filename of del LOBS FROM ‘/home’ MODIFIED BY NOROWWARNINGS WARNINGCOUNT 10 insert into tabname;
9. 對於自增序列(GENERATED ALWAYS)
建議不要對自增序列的表進行import操作,因為import對於自增序列,只有MODIFIED BY IDENTITYIGNORE和MODIFIED BY IDENTITYMISSING的2中操作,這2中操作都會改變自增序列的原值,這樣如果導出表和表之間有基於自增序列的關聯關系的話,就失去了數據本身的意義,所以建議盡量少用基於import的自增表的操作,那該怎麼做?可以用load老代替import,我們下來在load的操作中會講到!
關於Load
1. 字符串間隔,列間隔,小數點表示
CHARDEL/COLDEL/DECPT
例:LOAD CLIENT FROM 'F:s1.del' OF DEL MODIFIED BY CHARDEL(COLDEL= DECPT? INSERT INTO "DB2ADMIN"."ZXTABLES"
2.數據庫記錄中存在換行符,導致數據無法裝入的情況
MODIFIED BY DELPRIORITYCHAR
Db2默認load優先級策略為,record delimiter, character delimiter, column delimiter,這樣record delimiter得優先級最高,所以原始文件如果有換行的話load就認為是新的record,如果用戶在某些情況下行裡面包含了換行符(比如論壇裡面的一條帖子,不可能把換行符刪掉的),就必須用delprioritychar改變默認的優先級別,確保""之間的數據不管有沒有換行符都被認為是同一條記錄
例:LOAD CLIENT FROM 'F:s1.del' OF DEL MODIFIED BY DELPRIORITYCHAR INSERT INTO DB2ADMIN.ZXTABLES
3.load後表空間暫掛的處理
Copy YES/ NONRECOVERABLE
對於DMS表空間,load默認為copy NO 模式,此模式下,load完成後,表空間會處於暫掛狀態,這時候只能查表中的數據,需要對表空間進行一次備份,才可以對表進行update、insert等操作,那麼我們可以使用如上2個命令,對於Copy YES,load完成以後會自動進行一次備份操作;NONRECOVERABLE 指出load不可恢復,此命令符不會產生表空間暫掛,也不會自動進行表空間備份,但是他有一個缺點就是,不能恢復,當數據庫進行回滾的時候,不能還原,危險等級還是比較高一點,不過個人覺得也NONRECOVERABLE比較實用。
例:LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES NONRECOVERABLE
LOAD CLIENT FROM 'F:s1.del' OF DEL INSERT INTO DB2ADMIN.ZXTABLES COPY YES
4. load IXF類型文件到多分區數據庫
partitioned db configmode load_only_verify_part part_file_location
當數據在2個不同數量節點的數據庫之間移動,如果還想使用load來進行IXF的數據裝載就比較棘手了,當時查遍IBM的官方文檔均無所獲,正郁郁不安時,狼出現了,給支了一招,現分享給大家。