Oracle游標(biāo)
一、游標(biāo)
游標(biāo)是指向查詢結(jié)果的一行記錄,初次打開時指向第1行的前面。
第1步 .先聲明:
declare
cursor 自定義游標(biāo)名稱 is 查詢語句;
第2步.在打開游標(biāo)
open 自定義游標(biāo)名稱;
第3步.☆然后,訪問查詢結(jié)果中的一行記錄,獲取這行記錄
fetch 自定有表名稱 into 變量;
第4步.☆☆☆☆☆最后,關(guān)閉
close 自定義游標(biāo)名稱;
1.練習(xí)利用游標(biāo)訪問dept當(dāng)中的一行數(shù)據(jù)
declare
cursor c_dept is select * from dept;
v_obj dept%rowtype;
begin
open c_dept;
fetch c_dept into v_obj;
dbms_output.put_line(v_obj.deptNo||' # '||v_obj.dname||' # '||v_obj.loc);?
close c_dept;
end;
2.利用for循環(huán)通過游標(biāo)訪問dept中的每一行記錄: for循環(huán)用In訪問游標(biāo)時,游標(biāo)不用手動開啟與關(guān)閉。in自動開啟游標(biāo)用后自動關(guān)閉
declare
cursor c_dept is select * from dept;
v_obj dept%rowtype;
begin
for v_obj in c_dept loop
dbms_output.put_line(v_obj.deptNo||' # '||v_obj.dname||' # '||v_obj.loc);
end loop;?
if c_dept%isopen then
close c_dept;
dbms_output.put_line('手動關(guān)閉游標(biāo)');
end if;
end;
/
3.游標(biāo)的其他屬性
游標(biāo)名%found 獲取游標(biāo)提取到數(shù)據(jù)了嗎?有則返回true,沒有返回false
游標(biāo)名%isopen? ?獲取游標(biāo)打開狀態(tài),如果打開返回true,沒打開返回false