如何使用oracle sql的快速方法查找Jobs运行日志中的最后一个日志列

时间:2015-08-21 07:43:48

标签: sql oracle

运行日志有太多数据,我无法快速搜索它。现在我只想在oracle作业中获取此日志表中的最后一个日志数据。请给我帮助。最好!

2 个答案:

答案 0 :(得分:2)

有多种选项可以返回一个sinlge行,但这些只能通过一次表扫描来完成:

SELECT *
FROM   ( SELECT *
         FROM   log_table
         ORDER BY entry_date DESC
       )
WHERE  ROWNUM = 1;

SELECT *
FROM   ( SELECT l.*,
                ROW_NUMBER() OVER ( ORDER BY entry_date DESC ) rn
         FROM   log_table l
       )
WHERE  rn = 1;

或(对于Oracle 12)

SELECT *
FROM   log_table
ORDER BY entry_date DESC
FETCH FIRST 1 ROW ONLY;

答案 1 :(得分:0)

最好像这样使用max(date)

select * from log where date=(select max(date) from log)

它将使用索引(如果存在)

如果您没有可以使用的日期字段,这可能会更好:

select * from log where rowid=(select max(rowid) from log)