sqlplus查询的“较少”行为

时间:2012-05-30 16:49:05

标签: sql sqlplus

是否有任何针对sqlplus的技巧或命令允许遍历SELECT查询返回的数据库记录,就好像它们是通过Linux命令“less”发送一样?

我想选择按日期排序的大量记录,并轻松浏览它们。

具体来说,我正在考虑用数据库替换我的日志文件。这有一个很好的搜索属性的日志,但我担心我会失去只看日志的能力,看起来很奇怪。

1 个答案:

答案 0 :(得分:1)

SQL 中的“less”相当于是BOTTOM,如:

select BOTTOM 100 *
from log

但是,Oracle(以及大多数其他数据库)不支持此功能。因此,您可以使用:

SELECT top 100 *
from log
order by 1 desc

(我建议您将自动增量logid作为第一列,因此上述查询始终有效。否则,您需要显式地对logid desc或其他字段(如logdatetime字段)进行排序。)

根据您的系统,这将有效,最多可达数十万或数百万行。例如,我有一个处理日志,去年9月已经有了大约90,000行,而SQL Server从中获取我需要的数据没有问题。

因此,如果您每天在日志中添加数十行或数百行,那么您可以使用SQL。如果要添加数万个行,那么您可能需要更复杂的方法。在这种情况下,我建议使用日志历史表和当前日志表,并定期将当前表转储到历史记录中。

我忘了提。使用SQL登录有很多好处。它为您提供报告灵活性,能够非常轻松地查看“昨天发生的事情”,以及一个很好的汇总平台。