為了處理 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游標之間的區別,以及什麼時候該正確應用哪乙個?這個題目,我著實難住了不少人,其實他們在具體開發的時候,也還是比較能夠把...