Oracle DBMS 中的游標
在 Oracle 中執行 SQL 語句時,會建立一個臨時上下文區域。此區域包含與語句及其執行相關的所有相關資訊。游標是指向此上下文區域的指標,並允許 PL/SQL 程式控制此區域。
游標有兩種型別。
- 隱式游標
- 顯式游標
讓我們從隱式游標開始:
隱式游標
每當執行 SQL 語句時,都會自動建立隱式游標。如果特定語句沒有顯式游標,就會發生這種情況。程式設計師無法控制隱式游標。
隱式游標有很多不同的屬性。其中一些是:
%FOUND
如果使用 INSERT、UPDATE、DELETE 等命令成功提取了一條或多條記錄,則返回 TRUE。否則返回 FALSE。
%NOTFOUND
這是 %FOUND 的直接反義。如果使用 INSERT、UPDATE、DELETE 等命令成功提取了一條或多條記錄,則返回 FALSE。否則返回 TRUE。
%ROWCOUNT
這將返回受 INSERT、UPDATE、DELETE 等不同命令影響的行數。
%ISOPEN
如果游標開啟則返回 TRUE,否則返回 FALSE。但是,對於隱式游標,其值始終為 FALSE,因為游標會在執行其指令後立即關閉。
顯式游標
雖然隱式游標是自動建立的,但顯式游標是由程式設計師專門建立的。其定義在 PL/SQL 塊的宣告部分提供。
建立顯式游標包含以下步驟:
宣告游標
游標宣告如下。這裡,游標是 c_student:
CURSOR c_student IS Select Stu_ID,Stu_Name from Student;
開啟游標
游標開啟方式如下:
OPEN c_student;
提取游標
提取游標時一次訪問一行。提取游標如下:
FETCH c_student INTO c_stuID, c_stuName;
關閉游標
關閉游標時會釋放已分配的記憶體。操作如下:
CLOSE c_student;
廣告