一 概念
游標是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...