定時匯出Oracle資料表到文字檔的方法

來源:互聯網
上載者:User

標籤:style   http   color   使用   檔案   ar   資料   art   div   

該執行個體實現了通過windows定時任務來實現了將資料庫中指定資料表資料匯出為txt文字格式設定。其思路是通過可執行檔bat檔案去調用匯出資料指令碼,然後再在windows定時任務中調用該bat檔案來實現。該樣本需要能夠啟動並執行sqlplus環境,因此需要安裝Oracle用戶端等可運行環境。    實現了將資料庫中日誌表資料匯出到指定檔案夾下的.log檔案,且該檔案的命名方式採用按天來匯出的格式(如:C:\HttpLog\20130115.log),當然具體路徑根據你的需求可進行自訂設定。如果你不想建立windows定時任務來匯出該日誌,你也可以定期雙擊運行logout.bat檔案即可實現。    spool是sqlplus的命令,必須在sqlplus中使用,主要完成以標準輸出方式輸出sqlplus的命令及執行結果,一般常使用者格式化匯出oracle表資料。    對於spool資料的sql語句,最好是自訂格式,以方便程式直接匯入 ,樣本SQL語句如:select col1||‘,‘||col2||‘,‘||col3||‘,‘||col4||‘,‘||to_number(to_char(col5,‘YYYYMMDD‘)) from table_name; spool命令常用設定:set colsep‘,‘; //-域輸出分隔字元 set newp none //設定查詢出來的資料分多少頁顯示,如果需要連續的資料,中間不要出現空行就把newp設定為none,這樣輸出的資料行都是連續的,中間沒有空行之類的 set echo off; //顯示start啟動的指令碼中的每個sql命令,預設為on set echo on //設定運行命令是是否顯示語句 set feedback on; //設定顯示“已選擇XX行” set feedback off; //回顯本次sql命令處理的記錄條數,預設為on即去掉最後的“已經選擇10000行”set heading off; //輸出域標題,預設為on 設定為off就去掉了select結果的欄位名,只顯示資料 set pagesize 0; //輸出每頁行數,預設為24,為了避免分頁,可設定為0。 set linesize 80; //輸出一行字元個數,預設為80 set numwidth 12; //輸出number類型域長度,預設為10 set termout off; //顯示指令碼中的命令的執行結果,預設為on set trimout on; //去除標準輸出每行的拖尾空格,預設為off set trimspool on; //去除重新導向(spool)輸出每行的拖尾空格,預設為off set serveroutput on; //設定允許顯示輸出類似dbms_output。 set timing on; //設定顯示“經過時間:XXXX”。 set autotrace on; //設定允許對執行的sql進行分析。 set verify off //可以關閉和開啟提示確認資訊old 1和new 1的顯示。 1、建立資料庫日誌表匯出為文字檔的指令碼tabout.ctl或tabout.sql注意:該日誌匯出後在c:\HttpLog目錄下tabout.ctl指令碼內容如下:SET NEWPAGE NONE SET HEADING OFF SET TERM OFFSET SPACE 0 SET PAGESIZE 0 SET TRIMOUT ON SET TRIMSPOOL ONSET LINESIZE 2500set feedback offset echo offSET VERIFY OFFcolumn v_date new_value filename; select to_char(sysdate,‘yyyymmdd‘) || ‘.log‘ v_date from dual; spool ..\HttpLog\&&filename              select id||‘,‘||name from orcluser.test; spool off;exit; 2、建立調用該指令碼的logout.bat檔案logout.bat內容如下:mkdir ..\HttpLog\C:\oracle\ora92\bin\sqlplus orcluser/orcl @C:Oracleout.ctl 說明:該bat檔案直接在目前的目錄下建立名為HttpLog的檔案夾,以便tabout.ctl指令碼輸出的檔案存放到該目錄下。其通過調用Oracle中sqlplus可執行檔來執行tabout.ctl指令碼,所以該檔案直接雙擊即可運行,無需其他動作。 3、通過windows定時任務實現自動定期執行    “在控制台——任務計劃——新增工作計劃”中建立定期將資料庫中日誌表資料匯出為文字格式設定(如:你可以根據需求設定為每天對日誌表資料進行匯出)。根據你當前對記錄檔路徑的儲存需求,修改上面兩個指令碼中的儲存路徑,在windows定時任務直接調用logout.bat檔案執行即可。

定時匯出Oracle資料表到文字檔的方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.