得到一个游标的最后一条记录
问题描述:
如果我有一个光标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列?
答
不。游标是指向执行查询的程序的指针。您只能从光标中获取。 Oracle本身不知道游标将返回的最后一行是什么,直到您尝试获取一行并发现没有更多行返回。
您当然可以修改查询,以便最后一行的CNT
返回到单独的列中(假设您有一些方法来排序行,以便“最后一行”是一个有意义的概念) 。
编写一个单独的查询来确定条件,或者想出一些方法来添加一个约束,例如“where not exists(
OldProgrammer