我想将查询输出到 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/