假脱机命令:不要将SQL语句输出到文件

bni*_*nix 12 oracle oracle-sqldeveloper

我想将查询输出到CSV文件,并使用下面的小测试;

spool c:\test.csv 
select /*csv*/ username, user_id, created from all_users;
spool off;
Run Code Online (Sandbox Code Playgroud)

但输出的实际选择状态为第一行

> select /*csv*/ username    user_id     created from all_users
USERNAME    USER_ID CREATED
REPORT  52  11-Sep-13
WEBFOCUS    51  18-Sep-12
Run Code Online (Sandbox Code Playgroud)

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

谢谢布鲁斯

Ale*_*ole 24

不幸的是,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;
Run Code Online (Sandbox Code Playgroud)

然后从SQL Developer中只调用该脚本:

@test.sql
Run Code Online (Sandbox Code Playgroud)

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

除了特殊查询之外,保存为脚本文件不应该是一件困难的事情.并运行它@而不是打开脚本并直接运行它只是一点点痛苦.


一些搜索在SQL Developer论坛上找到了相同的解决方案,开发团队认为这是模仿SQL*Plus所做的有意行为; 你需要在@那里运行一个脚本才能隐藏查询文本.