oracle - 假脱机命令 : Do not output SQL statement to file

标签 oracle oracle-sqldeveloper

我想将查询输出到 CSV 文件,并使用以下内容作为小测试;

spool c:\test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;

但输出将实际的 select 语句作为第一行
> select /*csv*/ username    user_id     created from all_users
USERNAME    USER_ID CREATED
REPORT  52  11-Sep-13
WEBFOCUS    51  18-Sep-12

有没有办法防止这种情况?我试过 SET Heading Off 认为可能会这样做,但它没有改变。我正在使用 SQL Developer 作为脚本运行。

谢谢
布鲁斯

最佳答案

不幸的是,SQL Developer 并没有完全尊重 set echo off将(似乎)在 SQL*Plus 中解决此问题的命令。

我为此找到的唯一解决方法是将您正在执行的操作保存为脚本,例如test.sql和:

set echo off
spool c:\test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;

然后从 SQL Developer,只需调用该脚本:
@test.sql

并将其作为脚本运行 (F5)。

无论如何,除了临时查询之外,保存为脚本文件应该不是什么困难;并使用 @ 运行它而不是打开脚本并直接运行它只是有点痛苦。

一点搜索在 SQL Developer forum 上找到了相同的解决方案,并且开发团队建议模仿 SQL*Plus 的行为是有意的行为;您需要使用 @ 运行脚本那里也是为了隐藏查询文本。

关于oracle - 假脱机命令 : Do not output SQL statement to file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19033943/

相关文章:

python - SQLAlchemy - 获取表的创建日期

java - 更新查询不起作用 oracle 和 jsp

oracle - 有条件地定义一个游标

sql - 有没有办法检查截断表?

java - 被事务 : @console:Oracle (INTELLIJ CLIENT) 锁定

oracle - 如何使用 desc 操作显示列的注释

oracle - 在 Oracle 过程中声明表变量

sql - 同时更新父子表

sql - 我无法使用 Autotrace Traceonly Oracle 打印统计信息

mysql - 在sql查询中从另一个表引用表名