我試圖使用Oracle SQL Developer中的SPOOL命令將SQL查詢的結果輸出到CSV文件。如何在Oracle SQL Developer中使用spool命令將查詢結果輸出到CSV文件
我能夠通過調用它作爲腳本輸出一個簡單的查詢結果。這裏是工作的查詢:
spool trivial_output.csv
select /*csv*/ * from trivial_table;
spool off;
這就是我如何成功地把它稱爲(F5):
@'C:\Spool to CSV\trivial_query.sql'
然而,當我試圖用一個稍微更復雜的查詢同樣的事情,我收到錯誤消息: 「SQL錯誤:ORA-00933:SQL命令不能正確地結束00933. 00000 - SQL命令不能正確地結束」
spool total_records.csv
select /*csv*/ enrol.year, enrol.college, count(*) as "Total Records"
from enrolment enrol
inner join regis_status_type regstatus
on enrol.regis_status_type_id = regstatus.regis_status_type_id
where enrol.year in ('201213', '201314')
and regstatus.regis_status_type_code in ('10','41')
group by enrol.year, enrol.college
order by enrol.year, enrol.college
spool off;
你可能需要在你的SELECT子句一些硬編碼的逗號。事實上,不妨做好它,並且有一些硬編碼的雙引號,以防萬一任何大學都有逗號。 – 2014-10-17 18:39:51
我不確定它是否重要,但Oracle錯誤消息表示錯誤在最後一行之前觸發(「假脫機」)。所以這個問題似乎晚於SELECT語句發生。 – b00kgrrl 2014-10-17 18:43:57
看起來您在第二個示例中的SELECT語句後缺少分號。這會導致Oracle將「spool off」解釋爲SQL語句的最後一行,而不是單獨的SQL * Plus命令。這又會導致您的SQL語句在語法上無效。 – 2014-10-17 20:35:30