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;

更新於:2020年6月20日

4K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告