【问题标题】:How to have spool file display result of query? (Having trouble)查询的假脱机文件如何显示结果? (遇到麻烦)
【发布时间】:2018-05-09 14:40:43
【问题描述】:

我正在尝试导出一个 .csv 文件(假脱机文件),该文件具有我在 Oracle SQL Developer 中运行的一个非常简单的查询的结果集。假脱机文件生成;但是,只显示查询(选择 * FROM TABLE),没有结果集。我究竟做错了什么?我使用的命令如下:

spool "C:\Temp\test.csv"

select * from table;

spool off;

提前致谢

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    使用以下命令在假脱机文件中获取查询的输出

    设置服务器输出开启

    设置回声开启

    执行选择查询后不要忘记脱机。

    【讨论】:

    • 由于某种原因对我不起作用。你能把完整的代码发给我吗?我试过了(添加了它),但仍然遇到同样的问题。
    • SET SERVEROUTPUT ON 用于 PL/SQL 块的输出。在这种情况下您不需要它,ECHO ON 只是将命令回显到屏幕/文件。这不会解决问题
    【解决方案2】:

    所以我做了更多的研究/实验,我发现以下工作:

    我首先使用适当的 sql 脚本 /command 创建了一个 sql 文件,并将其放在一个目录 (C:\TEMP) 中。然后我运行以下命令:

    SET NEWPAGE 0
    SET SPACE 0
    SET PAGESIZE 0
    SET FEEDBACK OFF
    SET HEADING OFF
    set verify off
    SET ECHO OFF
    spool "c:\Temp\test.csv"
    @c:\Temp\test.sql as script(F5);
    spool off
    

    但是现在我遇到了一个障碍,oracle 向我抛出了一个错误,说脚本结果中当前应该只有 5,000 行...

    编辑:我将上述代码创建为 .sql 文件 (test2.sql) 并运行以下脚本。但我仍然遇到 5000 行错误:

    SET NEWPAGE 0
    SET SPACE 0
    SET PAGESIZE 0
    SET FEEDBACK OFF
    SET HEADING OFF
    set verify off
    SET ECHO OFF
    spool "c:\Temp\test2.csv"
    @c:\Temp\test2.sql as script(F5);
    spool off
    

    当我尝试增加限制时,以下操作有效:我转到我的 sql 开发人员工具栏(工具 > 首选项 > 数据库 > 工作表)并且能够更改最大输出限制。

    【讨论】:

    • 将所有这些放在一个脚本中并在 sqldev 中作为@script 执行 - 5,000 行输出限制将被忽略。或者进入首选项,增加脚本输出限制
    • 我刚试过,好像不行。我添加/编辑了我对这个答案所做的事情
    • 没关系,能够解决我的问题。非常感谢!
    • 假脱机打印到一个文件,如果你想查看文件内容添加一个 HOST 命令并发出 TYPE c:\Temp\test2.csv
    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-15
    相关资源
    最近更新 更多