【发布时间】:2017-03-31 14:45:18
【问题描述】:
我正在尝试打印查询结果。这是 Oracle SQL 脚本:
set linesize 32767;
set pagesize 0;
set newpage 0;
set space 0;
set echo off;
set feedback off;
set verify off;
set heading off;
set sqlprompt '';
set trimspool on;
set headsep off;
spool C:\asd.tmp
SELECT PROCESSNAME FROM ACTIVEPROCESSLIST ORDER BY PROCESSID;
spool off;
但是“asd.tmp”的内容是:
从 ACTIVEPROCESSLIST ORDER BY PROCESSID 中选择 PROCESSNAME
它只打印查询文本,而不是它的结果。如何后台处理查询结果?
注意:我使用的是“sqldeveloper-4.0.3.16.84-x64”,它以管理员身份运行。同样设置上面给出的属性可能是无意义的。我已经尝试了它们的一些组合,并且只执行了没有设置的假脱机命令。
我可以在 C++ 中执行的任何其他解决方案也适合我。
【问题讨论】:
-
查询真的返回什么吗?
-
是的,它返回 6 行。
-
SQL Developer 4.0.3 版已经相当老了,它对 SQL*Plus 命令的支持不如今天那么强大。获取版本 4.2 并重试 - 它更接近 100% SQL*Plus 命令/脚本引擎支持。例如 v4.0 不支持 PAGESIZE 0。
-
我没有使用自己的电脑。这台电脑属于我的公司,你知道公司的政策。我无法更改 sqldeveloper 的版本。当我在 C++ 中执行它时,这个查询也同样有效。我的意思是,它在 c++ 中也不起作用。