尝试从SQL Developer导出时,SPOOL返回空文件

时间:2014-09-24 02:05:52

标签: oracle oracle11g oracle-sqldeveloper

我有一系列想要输出到.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)

5 个答案:

答案 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)

就我而言,解决问题需要两件事:

  • 从脚本运行(使用@C:\ file.sql表示法)
  • 升级到最新版本的SQL Developer

我正在运行SQL Developer 3.2.20.09(没有工作),现在使用4.0.2.51(完全相同的脚本工作)。

另外,

答案 3 :(得分:0)

突出显示整个脚本并在SQL开发人员中按F5后,问题解决了。

答案 4 :(得分:0)

很棒,我的问题解决了, 首先,我在sql developer页面窗口(正在运行查询的地方)中清除了所有查询,只保留了我要运行的后台打印命令。 选择(ctrl + A)并单击F5后,还会在文件中生成运行和内容,其中最初仅生成空文件