2011-06-30 75 views
2

Oracle SQL Developer可以將查詢結果的內容導出爲各種格式(CSV /固定寬度/ Excel/XML)。有什麼辦法可以自動化嗎?Oracle - 自動導出/卸載數據

如果不是,那麼有什麼免費工具可以讓我將導出自動化爲SQL Developer能夠導出的相同格式?

+0

我通常用於分隔的文件出口直SQL SELECT語句非數據庫,從SQLPLUS計劃在crontab中調用。 – tbone

回答

2

我不知道如何自動化SQL Developer導出,沒有。

但是,很容易從PL/SQL生成CSV和/或固定寬度文件(使用UTL_FILE包)。 Tom Kyte的例子是使用PL/SQL或Pro * C的programs that generate CSV or fixed width files。使用您最喜愛的調度程序可以相對容易地進行自動化。

根據您對實際生成的XML需要多少控制,XML輸出可以以相同的方式自動執行。如果您只需要有效的XML並且不關心該XML的格式,則可以使用DBMS_XMLGEN package(此示例直接來自文檔)執行此類操作。

DECLARE 
    qryCtx DBMS_XMLGEN.ctxHandle; 
    result CLOB; 
BEGIN 
    qryCtx := DBMS_XMLGEN.newContext('SELECT * FROM hr.employees'); 
    -- Set the row header to be EMPLOYEE 
    DBMS_XMLGEN.setRowTag(qryCtx, 'EMPLOYEE'); 
    -- Get the result 
    result := DBMS_XMLGEN.getXML(qryCtx); 
    INSERT INTO temp_clob_tab VALUES(result); 
    --Close context 
    DBMS_XMLGEN.closeContext(qryCtx); 
END; 
/

然後,您可以編寫使用UTL_FILEresult CLOB到一個文件,並再次用自己喜歡的調度程序來安排吧。

如果您只需要生成Excel可以打開的文件,則可能只需創建一個CSV或製表符分隔的文件即可。 Excel可以相對容易地打開任一種類型的文件,雖然您會得到提示接受它所發現的分隔符的額外步驟(它通常會正確檢測分隔符)。

生成本機Excel輸出更具挑戰性。有用於生成Excel文件的PL/SQL API,例如Jason Bennett's ExcelDoctypeUtils。但是我一直使用Java存儲過程,它使用JExcelAPIApache POI來生成Excel文件。顯然,這需要更多的工作來實施。一旦您有一個可以編寫Excel文件的存儲過程(與其他選項一樣),您就可以使用您最喜歡的調度程序自動調用該過程。

2

SQL工作臺有一個非常強大的命令行工具export這是特定

+0

這個工具看起來很有前途。我會看一看。 – tgxiii