我在Windows 2003 R2上有一个Oracle 11实例。
我运行它来获得如下所示的输出:
C:\>echo select count(*) from v$session; | sqlplus -s zabbix/pwd@localhost:
1521 / ORCL
COUNT(*)
----------
31
但是,我希望输出只是31,而不是列标题和它下面的行 - 这是{* 1}}从SQL * Plus中产生的效果。
我遇到this question建议使用SET HEADING OFF
的{{1}}选项,但这似乎不适用于Windows或我遗漏了一些内容。
-e
这是我在上面引用的帖子中提到的确切命令:
echo
我没有看到我可以使用的SQL * Plus标志(比如我上面用来保持沉默的C:\>echo -e "set heading off; \n select count(*) from v$session;" | sqlplus -s zabbix/pwd@localhost:1521/orcl
SP2-0734: unknown command beginning "-e "set he..." - rest of line ignored.
)。因此尝试这种方法!
如何才能让它在Windows上运行?
答案 0 :(得分:1)
C:>(echo set heading off & echo select count(*^^^) from v$session; & echo exit;) | sqlplus -s zabbix/pwd@localhost:1521/orcl
53
^^^)
中的count(*)
部分is to escape the parenthesis,在括号内将两个echo命令包装在一起 - 这为SQL * Plus提供了单个输入。
顶部有空白行;您可能更愿意使用set pagesize 0
代替set heading off
:
C:>(echo set pages 0 & echo select count(*^^^) from v$session; & echo exit;) | sqlplus -s zabbix/pwd@localhost:1521/orcl
53
如果需要,您可以在一个set命令中放置多个设置。
或者,只需将所有命令放在脚本文件中,例如test.sql
:
set pages 0
select count(*) from v$session;
exit
然后运行:
sqlplus -s zabbix/pwd@localhost:1521/orcl @test