1

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

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

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

4

1 回答 1

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 中记录日志有令人难以置信的好处。它为您提供了报告的灵活性、很容易看到“昨天发生的事情”的能力,以及一个很好的总结平台。

于 2012-05-30T17:34:08.557 回答