1. 程式人生 > >PLSQL程式設計4:plsql遊標的用法

PLSQL程式設計4:plsql遊標的用法

  • 1.遊標的基本概念

遊標,顧名思義,類似於C/C++中的指標,是一個虛擬的概念,它是用來處理由SQL DML語句產生的結果集的資料行互動的一種手段。標準的SQL語句執行的結果是一個完整的結果集,然而我們有時候需要與資料行產生互動,那麼就需要遊標來實現了。

  • 2.遊標的幾種基本用法

(1)使用for迴圈來遍歷遊標
這裡寫圖片描述
執行結果如下
這裡寫圖片描述
(2)通過fech讀取遊標中的資料到record記錄型別中,然後再取出資料。使用fetch的時候必須要手動開啟和關閉遊標。已經關閉的遊標不能再重複關閉。
這裡寫圖片描述
(3)隱式遊標,當執行SQL語句的時候,Oracle會自動建立一個遊標,這個遊標是處理該語句的工作區域。在使用的時候要使用隱式遊標的預設名稱SQL。
這裡寫圖片描述


執行結果如下:
這裡寫圖片描述
- 3遊標的四個屬性

%isopen:判斷遊標是否開啟;
%found:如果sql語句至少影響了一行以上的資料則返回true,否則返回false;
%notfound:功能和%foun的相反;
%rowcount:返回受到影響的行數。
這裡寫圖片描述
執行結果如下
這裡寫圖片描述
- 4.遊標變數

變數的好處就是可以實現動態化查詢,根據程式的邏輯來進行選擇。遊標變數的基本語法:

type cur_name is ref cursor return <返回型別>;

這是一種受限遊標變數,只能返回特定的型別。
這裡寫圖片描述
這個遊標只能返回csm_product表中的資料行。執行結果如下:
這裡寫圖片描述


如果不帶return返回值的話就是不受限的遊標變數型別,可以未任何查詢開啟。


  • 5使用遊標的注意事項

(1)使用完成之後一定要關閉遊標; (2)不能關閉已經被關閉的遊標; (3)能不使用遊標就不要使用遊標,因為遊標效率十分低下。