在處理游標時,可能需要確定游標的狀態。 以下是可以使用的游標屬性列表。
屬性 | 描述 |
---|---|
%ISOPEN |
如果游標處於開啟狀態,則返回TRUE ;如果游標處於關閉狀態,則返回FALSE 。 |
%FOUND |
(1). 如果宣告了游標,但不開啟,則返回INVALID_CURSOR ,或者游標已關閉。(2). 如果游標處於開啟狀態,則返回NULL ,但未執行提取。(3). 如果執行成功,則返回TRUE 。如果沒有行被返回,則返回FALSE 。 |
%NOTFOUND |
(1). 如果宣告了游標,但不開啟,則返回INVALID_CURSOR ,或者游標已關閉。(2). 如果游標處於開啟狀態,則返回NULL ,但未執行提取。(3). 如果執行了成功的提取,則返回FALSE 。 如果沒有行被返回,則返回TRUE 。 |
%ROWCOUNT |
(1). 如果宣告了游標,但不開啟,則返回INVALID_CURSOR ,或者游標已關閉。(2). 返回獲取的行數。(3). 除非遍歷整個游標,否則ROWCOUNT 屬性不會給出真正的行數。 換句話說,不應該依賴這個屬性來告訴游標在開啟後有多少行。 |
以下是如何使用%NOTFOUND
屬性的範例。
CREATE OR REPLACE Function FindCourse
( name_in IN varchar2 )
RETURN number
IS
cnumber number;
CURSOR c1
IS
SELECT course_number
FROM courses_tbl
WHERE course_name = name_in;
BEGIN
open c1;
fetch c1 into cnumber;
if c1%notfound then
cnumber := 9999;
end if;
close c1;
RETURN cnumber;
END;