oracle大資料量的匯入和匯出
來源:互聯網
上載者:User
oracle|資料
在oracle中批量資料的匯出是藉助sqlplus的spool來實現的。批量資料的匯入是通過sqlload來實現的。大量資料的匯出部分如下:/*************************** * sql指令碼部分 demo.sql begin **************************//************************** * @author meconsea * @date 20050413 * @msn meconsea@hotmail.com * @Email meconsea@163.com **************************/
//##--markup html:html格式輸出,預設為off
//##--autocommit:自動認可insert、update、delete帶來的記錄改變,預設為off
//##--define:識別命令中的變數首碼符,預設為on,也就是'&',碰到變數首碼符,後面的字串作為變數處理.
set colsep' '; //##--域輸出分隔字元
set echo off; //##--顯示start啟動的指令碼中的每個sql命令,預設為on
set feedback off; //##--回顯本次sql命令處理的記錄條數,預設為on
set heading off; //##--輸出域標題,預設為on
set pagesize 0; //##--輸出每頁行數,預設為24,為了避免分頁,可設定為0。
set linesize 80; //##--輸出一行字元個數,預設為80
set numwidth 12; //##--輸出number類型域長度,預設為10
set termout off; //##--顯示指令碼中的命令的執行結果,預設為on
set timing off; //##--顯示每條sql命令的耗時,預設為off
set trimout on; //##--去除標準輸出每行的拖尾空格,預設為off
set trimspool on; //##--去除重新導向(spool)輸出每行的拖尾空格,預設為off
spool C:\data\dmczry.txt;
select trim(czry_dm),trim(swjg_dm),trim(czry_mc) from dm_czry;
spool off;
EOF
/*********************** * demo.sql end ***********************/ 在資料匯入的時候採用sqlload來調用,在該部分調用的時候用java來調用sqlload。sqlload包括ctl控制檔案。例如:/********************* * meconsea ctl ********************/ load data infile 'C:\data\dmczry.txt' replace into table DM_CZRY fields terminated by X'09' (CZRY_DM,SWJG_DM,CZRY_MC) /******************** * end * 注釋:裡面的replace可以改為append *******************/ java程式如下:在java程式用可以根據需求寫成一個bat檔案。 把資料庫的配置和檔案的路徑寫到一個properties檔案。/************************* * ide properties ************************/Dserver=test/test@SJJZsqlldr=D:\\oracle\\ora92\\bin\ QLLDR.EXE
ctldmczry=C:\\data\\ctl\\dmczry.ctltxtdmczry=C:\\data\\dmczry.txt
寫個PropertyBean.java來操作properties檔案。(偷懶不寫了!)用DmCzry.java來把記錄匯入db中。部分代碼如下:
/**************************** * 代碼摘要 * ***************************/ .............. sqlldr = pb.getSqlldr(); txt = pb.getTxtdmczry(); ctl = pb.getCtldmczry(); Dserver= pb.getDserver(); Process processCmd = Runtime.getRuntime().exec(sqlldr+" "+cmdStr); .............