DB2刪除大量資料.匯出區間資料與匯入CSV
說明:
1.先將你想保留的資料匯出成 IXF 檔案
2.將你匯出的 IXF 檔案當作來源檔匯回
EXAMPLE1: (刪除所有資料表內的資料)
1.EXPORT TO TABLE1.IXF OF IXF SELECT * FROM TABLE1 WHERE 1=2
2.LOAD FROM TABLE1.IXF OF IXF REPLACE INTO TABLE1
上述的 EXPORT 語法匯出的資料筆數為 0,所以當我們將匯出的 TABLE1.IXF 作為來源檔匯回時,TABLE1 中所有的資料列都會被清除,利用這樣的方式就可以將資料表內的所有資料全部刪除。
EXAMPLE2: (保留特定資料,刪除其餘資料)
只保留20180101到20190225之間的資料,其餘刪除
EXPORT TO CARD_LOG.IXF OF IXF SELECT * FROM CARD_LOG where
varchar_format(LOG_DT,'YYYYMMDD') between '20180101' and '20190225' ;
LOAD FROM CARD_LOG.IXF OF IXF REPLACE INTO CARD_LOG;
------------------------------------------------------------------------------------------------
將20170101到20170630資料匯入至CSV檔做為備份
EXPORT TO D:\20170101-20170630.csv OF del SELECT * FROM ADMINISTRATOR.CARD_LOG
where varchar_format(LOG_DT,'YYYYMMDD') between '20170101' and '20170630' ;
-------------------------------------------------------------------------------------------------------
匯入某區間檔案
IMPORT FROM 'c:/datafile/jobfile.csv' OF DEL INSERT INTO job;