【问题标题】:Oracle SqlPlus - saving output in a file but don't show on screenOracle SqlPlus - 将输出保存在文件中但不显示在屏幕上
【发布时间】:2011-10-12 09:29:39
【问题描述】:

使用 SqlPlus for Oracle,如何将查询的输出保存在文件中,但不显示在终端/提示符上。

【问题讨论】:

  • SET TERMOUT OFF 不适用于我的 SqlPlus。这个 sqlplus -s ${ORA_CONN_STR} <<EOF >/dev/null 即@AshishAnand 的回答为我工作。
  • "SET TERMOUT 是这样做的方法,它需要一个脚本 - 它在交互式提示下不做任何事情" - community.oracle.com/thread/2140535?tstart=0

标签: oracle sqlplus


【解决方案1】:

来自 SQL*Plus 手册
http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch8.htm#sthref1597

设置期限

SET TERMOUT OFF 禁止显示,以便您可以在 脚本 的情况下假脱机输出 在屏幕上看到它。

如果不需要假脱机到文件和写入终端,请在 >SQL 脚本中使用 SET TERMOUT OFF 来禁用终端输出。

iSQL*Plus 不支持 SET TERMOUT

【讨论】:

  • “SET TERMOUT 是执行此操作的方法,它需要一个脚本 - 它不会在交互式提示下执行任何操作”- community.oracle.com/thread/2140535?tstart=0跨度>
【解决方案2】:

试试这个:

SET TERMOUT OFF; 
spool M:\Documents\test;
select * from employees;
/
spool off;

【讨论】:

【解决方案3】:

试试这个:

sqlplus -s ${ORA_CONN_STR} <<EOF >/dev/null

【讨论】:

  • 在 UNIX 上它只是挂在以 ">" 为前缀的提示符上
  • source .env; ORA_CONN="${USER}/${PASS}@{DB}"; sqlplus -s &lt;&lt;EOF&gt;/dev/null $ORA_CONN select 1 from dual; EOF 为我工作
【解决方案4】:

set termout off 在命令行中不起作用,因此请创建一个文件,例如termout_off.sql 包含该行:

set termout off

并从 SQL 提示符调用它:

SQL> @termout_off

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 2013-10-16
    相关资源
    最近更新 更多