SQL Plus 窗口不保留所有查询和输出行

Posted

技术标签:

【中文标题】SQL Plus 窗口不保留所有查询和输出行【英文标题】:SQL Plus window does not retain all lines of query and output 【发布时间】:2020-07-07 14:02:36 【问题描述】:

My SQL Plus 窗口不会保留所有的输出/输入行。

清屏后,我从“scott/tiger”依次在EMP表中运行了以下查询:

SELECT * FROM EMP ORDER BY EMPNO;
SELECT * FROM EMP ORDER BY EMPNO;
SELECT * FROM EMP WHERE COMM IS NOT NULL;

我应该两次获得 14 行的整个表,然后为最后一个查询输出 4 行。相反,我可以从第一个查询中向上滚动到 EMPNO 7654。这在处理较大的表格时会导致问题,因为整个输出不适合窗口。

This is the farthest I can scroll up

如何让它显示会话开始时的所有输出? 或者,至少显着增加显示的行数?

【问题讨论】:

【参考方案1】:

看起来像是 Windows CMD ,所以您只需要打开 CMD 设置(右键单击标题)并更改缓冲区设置。例如,我通常将其增加到 3000 行。 如果不是 WINDOWS cmd 窗口,先尝试启动 cmd 窗口,更改缓冲区设置,然后在该窗口中启动 sqlplus

【讨论】:

进入默认选项,我在选项选项卡下有一个命令历史记录部分。我有缓冲区大小和缓冲区数量的值。你增加了哪一个? @tukykarmakar 打开布局选项卡并更改缓冲区设置【参考方案2】:

上一个答案显示了如何增加命令窗口的缓冲区,从而可以向后滚动多远。但是很快就会出现一个点,即向后滚动大量内容并不实际。如果您真的想捕获整个会话,我的回答是使用 sqlplus 'spool' 命令。这会将所有内容捕获到一个文本文件中,即使在会话终止并且窗口关闭后您也可以查看该文件。您可以在 SQL Plus User's Guide and Reference 中阅读有关 spool 命令的信息。

【讨论】:

以上是关于SQL Plus 窗口不保留所有查询和输出行的主要内容,如果未能解决你的问题,请参考以下文章

1.19.7.Table APISQL数据类型保留关键字查询语句指定查询执行查询语法操作符无排名输出优化去重分组窗口时间属性选择分组窗口的开始和结束时间戳模式匹配

使用两个纹理:输出窗口不保留在屏幕上

SQL*Plus 中带有多个参数的假脱机输出

在 SQL*Plus 中控制行显示长度

尝试在 Python 2.7 中将 SQL*Plus 输出分配给元组(二维数组)

SQL*Plus连接符拼接输出