這個問題只是出於好奇。我試圖找出當沒有爲遊標指定退出條件時會發生什麼情況。取出最後一條記錄後會發生什麼。光標指向第一條記錄還是指向空白的內存區域?爲此,我創建了一個具有以下結構的測試表。遊標無限循環
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