oracle sqlplus 查询大量数据不滚屏输出到文件

在Oracle SQLPLUS中查询大量数据并使用spool保存到文件时,通常会出现滚动输出。为避免资源浪费和提高效率,可以采用SQL脚本结合`set termout off`命令来禁止终端显示。创建一个.sql文件,如test.sql,包含查询语句,然后连接数据库,设置`termout off`,执行脚本即可实现无滚动输出并直接保存结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.解语

如果有问题可以帮我指出来噢






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值