oracle 游標cursor詳解

2021-06-10 07:25:01 字數 1427 閱讀 8876

一  概念

游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義。游標的作用就是用於臨時儲存從資料庫中提取的資料塊。在某些情況下,需要把資料從存放在磁碟的表中調到計算機記憶體中進行處理,最後將處理結果顯示出來或最終寫回資料庫。這樣資料處理的速度才會提高,否則頻繁的磁碟資料交換會降低效率。

二  型別

cursor型別包含三種: 隱式cursor,顯式cursor和ref cursor(動態cursor)。

1. 隱式cursor:

1).對於select …into…語句,一次只能從資料庫中獲取到一條資料,對於這種型別的dml sql語句,就是隱式cursor。例如:select /update / insert/delete操作。

2)作用:可以通過隱式cusor的屬性來了解操作的狀態和結果,從而達到流程的控制。cursor的屬性包含:

sql%rowcount 整型 代表dml語句成功執行的資料行數

sql%found  布林型  值為true代表插入、刪除、更新或單行查詢操作成功

sql%notfound 布林型 與sql%found屬性返回值相反

sql%isopen 布林型 dml執行過程中為真,結束後為假

3) 隱式cursor是系統自動開啟和關閉cursor.

2. 顯式cursor:

(1) 對於從資料庫中提取多行資料,就需要使用顯式cursor。顯式cursor的屬性包含:

游標的屬性   返回值型別   意    義 

%rowcount   整型  獲得fetch語句返回的資料行數 

%found  布林型 最近的fetch語句返回一行資料則為真,否則為假 

%notfound   布林型 與%found屬性返回值相反 

%isopen 布林型 游標已經開啟時值為真,否則為假 

(2) 對於顯式游標的運用分為四個步驟:

 定義游標---cursor  [cursor name]  is;

 開啟游標---open  [cursor name];

 運算元據---fetch  [cursor name]

 關閉游標---close [cursor name],這個step絕對不可以遺漏。

3. ref cursor(動態游標):

1) 與隱式cursor,顯式cursor的區別:ref cursor是可以通過在執行期間傳遞引數來獲取資料結果集。而另外兩種cursor,是靜態的,在編譯期間就決定資料結果集。

2) ref cursor的使用:

 type [cursor type name] is ref cursor

 define 動態的sql語句

 open cursor

 運算元據---fetch  [cursor name]

 close cursor

oracle 游標操作,cursor

在游標中使用引數 cursor cursor name p state in state type is select statement 沒有引數的寫法是 cursor cursor name is select statement 對於括號裡面的,in 左邊是引數的別名,in 右邊是引數的型別,...

Oracle中Cursor 游標 學習

一 概念 游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義。游標的作用就是用於臨時儲存從資料庫中提取的資料塊。在某些情況下,需要把資料從存放在磁碟的表中調到計算機記憶體中進行處理,最後將處理結果顯示出來或最終寫回資料庫。這樣資料處理的速度才會提高,否則頻繁的磁碟資料交換會降低效率。二 ...

oracle游標cursor簡單使用

oracle游標cursor簡單使用 總共介紹兩種游標 cursor 與 sys refcursor 1 cursor游標使用 sql 簡單cursor游標 students表裡面有name欄位,你可以換做其他表測試 定義 declare 定義游標並且賦值 is 不能和cursor分開使用 curs...