PL SQL中的游標

2021-08-04 09:24:09 字數 1024 閱讀 8498

為了處理 sql 語句,oracle 必須分配一片叫上下文( context area )的區域來處理所必需的資訊,其中包括要處理的行的數目,乙個指向語句被分析以後的表示形式的指標以及查詢的活動集(active set)。

游標是乙個指向上下文的控制代碼( handle)或指標。通過游標,pl/sql可以控制上下文區和處理語句時上下文區會發生些什麼事情。

處理顯式游標需要四個 pl/sql步驟: 

定義游標:就是定義乙個游標名,以及與其相對應的select 語句 ,     其一般形式為:

cursor cursor_name is  select_statement; 

開啟游標:就是執行游標所對應的select 語句,將其查詢結果放入工作區,並且指標指向工作區的首部,標識游標結果集合。    

open cursor_name 

提取游標:就是檢索結果集合中的資料行,放入指定的輸出變數中。

fetch cursor_name into ; 

關閉游標:當提取和處理完游標結果集合資料後,應及時關閉游標,以釋放該游標所占用的系統資源,並使該游標的工作區變成無效,不能再使用fetch 語句取其中資料。

close cursor_name;

例:例:declare

v_ename  emp.ename%type;

v_sal      emp.sal%type;

cursor c_cursor is select ename, sal from emp where rownum<11;

begin

open c_cursor;

fetch c_cursor into v_ename, v_sal;

while c_cursor %found loop

dbms_output.put_line(v_ename||』---『||to_char(v_sal) );

fetch c_cursor into v_ename, v_sal;

end loop;

close c_cursor;

end; 

PL SQL中的游標

游標是對映在結果集中一行資料上的位置實體,有了游標,使用者就可以訪問結果集中的任意一行資料了,將游標放置到某行後,即可對該行資料進行操作,例如提取當前行的資料等。oracle 游標有4個屬性 isopen,found,notfound,rowcount。isopen判斷游標是否被開啟,如果開啟 is...

pl sql游標 PL SQL游標 1

pl sql游標 游標 隱式游標 sql返回單行。由oracle server建立。顯式游標 sql重新調整多個記錄行。由使用者建立。游標生命週期 宣告 開啟 獲取 檢查最後一條記錄 關閉 基本語法 declare cursor cursorname param1,param2,is select ...

PL SQL中cursor 游標 游標 的用法

今天簡單的總結一下pl sql中cursor 游標 游標 的用法.相信不少做開發或維護的dba在找工作的時候,遇到過類似的面視問題 請簡單的描述一下游標的型別,說一下普通游標和ref游標之間的區別,以及什麼時候該正確應用哪乙個?這個題目,我著實難住了不少人,其實他們在具體開發的時候,也還是比較能夠把...