exit when cursor%notfound 放在fetch的前面會比放在fetch后面多l(xiāng)oop一個次,這是為什么?
exit when cursor%notfound 放在fetch的前面會比放在fetch后面多l(xiāng)oop一個次,這是為什么?不是見到這個exit when,滿足條件就立馬跳出循環(huán)嗎?
exit when cursor%notfound 放在fetch的前面會比放在fetch后面多l(xiāng)oop一個次,這是為什么?不是見到這個exit when,滿足條件就立馬跳出循環(huán)嗎?
舉報
2022-12-02
顯式游標屬性:
?%FOUND:變量最后從游標中獲取記錄的時候,在結(jié)果集中找到了記錄。
%NOTFOUND:變量最后從游標中獲取記錄的時候,在結(jié)果集中沒有找到記錄。
%ROWCOUNT:當前時刻已經(jīng)從游標中獲取的記錄數(shù)量。
%ISOPEN:是否打開。
------
所以最后一行fetch后,再判斷notfound才能跳出循環(huán)。
而fetch超出行數(shù)時,不會報錯,仍保留最后一次的值。
2016-01-21
因為%notfound是根據(jù)最后一次fetch來判斷的,因此當輸出最后一條記錄后,還會在輸出最一條記錄,即最后一條記錄將輸出2遍
??????? 最后一次循環(huán)將處理在"結(jié)果集最后一行"的下一行,該行為NULL,當fetch的時候PL/SQL將不會拋出異常,并且不會覆蓋最后一次循環(huán)中賦予tempName的值,即tempName會保留最后一次被賦予的值。