这个问题只是出于好奇。我试图找出当没有为游标指定退出条件时会发生什么情况。取出最后一条记录后会发生什么。光标指向第一条记录还是指向空白的内存区域?为此,我创建了一个具有以下结构的测试表。游标无限循环
create table CURSOR_TEST
(col1 number,col2 NUMBER
);
以下是我没有退出条件
declare
cursor CUR is select EMPNO from EMP;
v1 number;
begin
open CUR;
loop
fetch CUR into V1;
insert into CURSOR_TEST values(s.nextval,V1);
commit;
end loop;
close CUR;
end;
匿名块由于它是无限循环,我需要打破之间的操作。在此之后,当我检查表中的记录时,我可以看到在emp行的所有行被提取后,光标再次指向第一行,但是在此之后,提取似乎不会发生。我无法理解为什么游标在第二次迭代过程中无法获取第二行和后续行。
你是怎么“打破之间的操作”? – APC
在sql开发人员中,我取消了任务进度窗口 – PTK