oracle大數據量的導入和導出 - 中國WEB開發者網絡 (http://www.webasp.net) -- 技術教程 (http://www.webasp.net/article/) --- oracle大數據量的導入和導出 (http://www.webasp.net/article/22/21177.htm) |
| -- 作者:未知 -- 發佈日期: 2005-04-29 |
在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); ............. |
| webasp.net |