1.问题描述
当我们需要从数据库里查询比较多数据的时候,并且需要将输出保存到文档中,
这个时候,我们都会想到使用 spool 这个方法。但是问题是,虽然是spool 了,但是如何不在sqlplus 窗口中输出出来呢。
首先没有必要在命令窗口输出,再者这样也耗费资源,降低了spool的效率
那么如何解决这个问题呢。
2. 解决方法
使用 sql 脚本 + set termout off
这里的脚本可不是你写一条查询语句什么的就算是脚本了,这个 脚本 类似 shell 脚本
我习惯将其 文件后缀设置成 *.sql 的格式。
set termout 看起语意就是 terminal output 。就是终端输出,关闭它,执行脚本就不滚屏了
1)
首先 我先建一个 test.sql
[oracle@rac1 ~]$ vi /home/oracle/develop/test.sql
写入内容
syslect sysdate from dual;
[oracle@rac1 ~]$ more /home/oracle/develop/test.sql
select sysdate from dual;
2) 连接到数据库
SQL> show termout
termout ON
SQL> @/home/oracle/develop/test.sql
SYSDATE
----------
10-3? -17
SQL> set termout off
SQL> @/home/oracle/develop/test.sql
SQL>
当然也可以将 set 写到 sql 文件中。效果应该是一样的,这里我就不做测试了。
至于常用的 set 命令,这里我就不说了。
3.解语
如果有问题可以帮我指出来噢