2014-09-24 120 views
5

我有一系列想要輸出到.csv文件的查詢。我必須查詢數據庫的唯一工具是SQL Developer。當試圖從SQL Developer中導出時,SPOOL返回空文件

我可以運行每個查詢,然後使用SQL Developer中的Export對話框將它們寫入文件,但這很麻煩,特別是當這需要每天爲多個文件完成時。

這適用於某些人 Directly export a query to CSV using SQL Developer

但它不爲我工作。

例如,如果我嘗試

spool "C:\Users\james.foreman\Downloads\Temp\myfile.csv" 

select distinct placement_type 
FROM jf_placements; 

spool off; 

然後在SQL Developer的腳本輸出窗口,我看到

無法創建假脫機文件C:\ Users \用戶james.foreman \下載\ TEMP \ myfile.csv

雖然myfile.csv已創建,但沒有結果。 (查詢返回了兩行)

我的第一個想法是寫入C:\ Users \ james.foreman \ Downloads \ Temp的權限問題 但似乎並非如此,因爲如果我刪除myfile.csv並運行SQL,則會重新創建myfile.csv文件,但它從來沒有任何內容。

所以我認爲這是一個配置問題,無論是在我正在運行SQL Developer的Windows機器上,還是與我的SQL Developer設置。我應該在哪裏尋求進一步調查?

@Devolus對Procedure to export table to multiple csv files的回答包括「在SQL窗口中右鍵單擊 - >將窗口更改爲 - >命令窗口」的指令,但是如果我右鍵單擊SQL窗口,我看不到更改窗口選項。

(運行Windows 7,SQL Developer版本4.0.2.15,構建15.21,數據庫是Oracle 11.2)

+0

你可以從'SQL * Plus'嘗試相同的方法,看看這次文件是否有內容。 – 2014-09-24 05:46:16

+0

嗨,我不能;我在這臺機器上只有SQL Developer,而不是SQL * Plus。 – JamesF 2014-09-24 07:57:35

+0

看到我的答案。關於'SQL * Plus',我只是想讓你驗證一下。沒有問題,只需按照答案。 – 2014-09-24 08:27:37

回答

5

該文件被創建的事實,但沒有數據,也許是最後陳述,SPOOL OFF不尚未執行。在腳本中添加一行,然後重試。

例如,你的腳本看起來像:

spool "C:\Users\james.foreman\Downloads\Temp\myfile.csv" 

    select distinct placement_type 
    FROM jf_placements 
    /

    spool off 
    /

-- need a new line to make sure spool off executes 
+0

謝謝 - 現在在結果文件中有SQL查詢。儘管我從其他問題看到,從腳本轉向運行應該解決這個問題。 – JamesF 2014-09-24 10:06:45

+0

感謝您的反饋。是的,您可以將內容放入'.sql'腳本並執行腳本。 – 2014-09-24 10:17:11

+0

在'Oracle SQL Developer'中將語句作爲腳本運行,即按「運行腳本」而不是「運行狀態」,或者可以按F5鍵。 – 2018-02-16 07:48:04

2

當你運行你的腳本,按「運行腳本」,而不是「運行Statment」 或者你可以按F5。

它固定我的問題,希望能夠解決你的那

1

在我的情況下,花了兩件事情來解決這個問題:

  • 從腳本運行(使用@C:\文件。 SQL符號)
  • 升級到SQL Developer的

我正在運行SQL開發人員3.2.20.09(不工作)的最新版本,而現在使用4.0.2.51(完全相同的腳本工作)。

另外,

相關問題