得到一个游标的最后一条记录

问题描述:

如果我有一个光标cur含有这些记录得到一个游标的最后一条记录

DEPTNO ENAME ORD CNT       
10  KING 1  3      
10  CLARK 2  3      
10  MILLER 3  3      
20  JONES 1  5 

我让我的光标记录是这样的:

FOR i IN cur LOOP 
    --Process 
END LOOP; 

现在我需要提高我的过程和做一个检查,如果最后一条记录的CNT列的值等于5,我不需要导航到这个游标。

有没有办法直接得到光标的最后一个记录来测试没有循环的CNT列?

+0

编写一个单独的查询来确定条件,或者想出一些方法来添加一个约束,例如“where not exists( OldProgrammer

不。游标是指向执行查询的程序的指针。您只能从光标中获取。 Oracle本身不知道游标将返回的最后一行是什么,直到您尝试获取一行并发现没有更多行返回。

您当然可以修改查询,以便最后一行的CNT返回到单独的列中(假设您有一些方法来排序行,以便“最后一行”是一个有意义的概念) 。