2013-10-18 89 views
19

使用SQL Developer運行查詢可以很好地工作,但如果我不是先運行查詢,然後右鍵單擊結果集並通過導出csv例程。使用SQL Developer直接將查詢導出爲CSV

我想知道這是否是SQL Developer中的一種方式: 1)編寫查詢,然後選擇查詢結果應導出到磁盤。 2)寫幾個查詢的隊列,每個查詢都將結果寫入磁盤。

+0

可能的重複:http://stackoverflow.com/questions/4168398/how-to-export-query-result-to-csv-in-oracle-sql-developer – MackM

回答

30

您可以使用spool command(SQL * Plus文檔,但SQL Developer也支持許多此類命令之一)將結果直接寫入磁盤。每個spool只需通過將它們之間spool命令更改設定爲被寫入文件,所以你可以有多個查詢寫不同的文件:

spool "\path\to\spool1.txt" 

select /*csv*/ * from employees; 

spool "\path\to\spool2.txt" 

select /*csv*/ * from locations; 

spool off; 

你需要運行這個作爲一個腳本(F5,或SQL Worksheet上方命令欄上的第二個按鈕)。您可能還想探索一些formatting optionsset command,儘管其中一些不轉換爲SQL Developer。

既然你在標題中提到了CSV,我已經包含了一個SQL Developer-specific hint,它可以爲你設置格式。

但是,一個不好的方面是SQL開發人員includes the query in the spool file,您可以通過在腳本文件中執行命令和查詢,然後將其作爲腳本運行來避免。

1

在網格中單擊,使其具有焦點。

CTRL + END

這將迫使記錄的其餘部分回饋到電網。

所有信貸http://www.thatjeffsmith.com/archive/2012/03/how-to-export-sql-developer-query-results-without-re-running-the-query/

+1

不需要Ctrl + End,如果您搜索了第一行並選擇了從網格導出,則導出的文件將包含所有行(查詢將重新運行)。在大數據集的情況下,這可能會有很大的性能差異,因爲不需要在SQL Developer中顯示它。 – andro83

0

CTRL + END後,您可以執行按Ctrl + A將緩衝器中選擇所有,然後粘貼到Excel中。 Excel甚至會將每個Oracle列放入其自己的列中,而不是將整行排成一列。不錯..