資料庫中的游標(以下內容以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...