我有一系列想要输出到.csv文件的查询。我必须查询数据库的唯一工具是SQL Developer。
我可以运行每个查询,然后使用SQL Developer中的“导出”对话框将它们写入文件,但这很麻烦,尤其是每天需要对多个文件执行此操作时。
这适用于某些人 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的脚本输出窗格中,我看到
无法创建SPOOL文件C:\ Users \ james.foreman \ Downloads \ Temp \ myfile.csv
虽然创建了myfile.csv,但没有结果。 (查询返回两行。)
我首先想到的是写入C:\ Users \ james.foreman \ Downloads \ Temp的权限问题 但事实并非如此,因为如果我删除myfile.csv然后运行SQL,则会重新创建myfile.csv文件,但它中没有任何内容。
所以我认为这是一个配置问题,无论是使用Windows机器运行SQL Developer还是我的SQL Developer设置。我应该在哪里进一步调查?
@Devolus对Procedure to export table to multiple csv files的回答包括指令"在SQL窗口中右键单击 - >将窗口更改为 - >命令窗口"但如果我右键单击SQL窗口,我就看不到更改窗口选项。
(运行Windows 7,SQL Developer版本4.0.2.15,Build 15.21,数据库是Oracle 11.2)
答案 0 :(得分:6)
创建文件但没有数据的事实,也许,最后一个语句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
答案 1 :(得分:5)
运行脚本时,请按“运行脚本”而不是“运行状态” 或者你可以按F5。
它解决了我的问题,希望它也能解决你的问题
答案 2 :(得分:1)
就我而言,解决问题需要两件事:
我正在运行SQL Developer 3.2.20.09(没有工作),现在使用4.0.2.51(完全相同的脚本工作)。
另外,
答案 3 :(得分:0)
突出显示整个脚本并在SQL开发人员中按F5后,问题解决了。
答案 4 :(得分:0)
很棒,我的问题解决了, 首先,我在sql developer页面窗口(正在运行查询的地方)中清除了所有查询,只保留了我要运行的后台打印命令。 选择(ctrl + A)并单击F5后,还会在文件中生成运行和内容,其中最初仅生成空文件