oracle中的游標型別

2021-09-24 15:00:21 字數 1267 閱讀 1349

資料庫中的游標(以下內容以oracle為例):

游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義

游標的作用就是用於臨時儲存從資料庫中提取的資料塊,通俗的講游標就是乙個結果集;

游標的屬性:

%found:用於檢測游標結果集是否存在資料,如果存在,則返回true;

%notfound:用於檢測游標結果集是否存在資料,如果不存在,則返回true;

%isopen:用於檢測游標是否開啟,如果開啟,則返回true;

%rowcount:用於返回已提取的實際行數;例,當提取5行資料時關閉游標;

常見游標分類:

顯式游標、隱式游標

顯式游標的定義步驟:

宣告游標 declare cursor cursor_name[(parameter_name datatype)] is select_statement

cursor_name emp%rowtype;

開啟游標 open cursor_name

提取資料 fetch cursor_name into variable1...

迴圈提取:

loop

exit when cursor_name%notfound

end loop;

----------------------------------或者

while cursor_name%found loop

end loop;

關閉游標 close cursor_name

隱式游標:由系統隱含建立的游標,主要用於非查詢語句;隱式游標的名字為sql,這是由oracle系統定義的;系統會自動開啟游標、提取資料、關閉游標等操作;

主要應用於:dml操作和select...into...的單行查詢語句;

隱式游標的屬性:通過sql游標名總是只能訪問前乙個dml操作或單行select操作的游標屬性;

sql%found:為true時,表示dml或單行select操作成功

sql%notfound

sql%isopen:dml操作執行過程中,為true;結束為false;

sql%rowcound:dml成功執行後的資料的行數;

例:根據使用者輸入的員工號,更新指定員工的工資(+100);

begin

dml操作語句;

if sql%found then

執行語句並提交事務;

else

執行語句並回滾事務;

end if;

end;

Oracle中的游標

cursor found最近一次讀取是否成功 notfound isopen游標開啟時返回true rowcount返回已從游標讀取的記錄數 輸出年齡大於等於18的使用者的id跟name declare v id t.id type v name t.name type cursor c user ...

Oracle中的游標

oracle 中的游標 游標 cursor 在pl sql 中可以增強 sql語句的功能,游標是用來查詢資料 獲取結果集中記錄的指標。它可以讓開發者在結果集中訪問結果集中的一行。游標以程式設計的方式訪問資料,從而完成在結果集的每個記錄上的操作。也就是說,游標就是結果集中的記錄指標,該指標指向查詢結果...

Oracle中的游標

游標 用來處理使用select語句從資料庫中檢索到的多行記錄的工具。1 游標的分類 1 顯示游標 返回多條記錄時,使用顯示游標逐行讀取 2 隱式游標 pl sql自動為dml語句建立隱式游標,包含一條返回記錄 2 顯示游標 1 顯示游標的使用步驟 宣告游標 cursor cursor name pa...