1. 游標
游標是一條sql語句執行之後的結果狀態資訊
1.1 隱式游標
當執行dml語句時,會自動建立隱式游標,包含
%found: 影響大於0條資料為true ,
%notfound:影響0條資料為true ,
%rowcount:影響資料的條數 ,
%isopen: 是否開啟,隱式游標始終為false
隱式游標的名稱叫做sql
declare
new_sal number;
new_empno number;
begin
new_sal := &newsal;
new_empno := &empno;
-- 修改值
update emp set sal = new_sal where empno = new_empno;
-- 執行完dml時,會建立隱式游標
if sql%found then
dbms_output.put_line('更新成功,本次更新了' || sql%rowcount || '條資料');
else
dbms_output.put_line('沒有更新到資料。');
endif; commit;
end;
-- 刪除建立隱式游標
begin
delete from salgrade;
if sql%rowcount > 0
then
dbms_output.put_line('刪除了很多資料');
endif; end;
1.2 顯示游標
顯示定義乙個查詢結果為游標
1.2.1 在宣告塊中聲明顯式游標物件
1.2.2 使用顯式游標之前必須開啟顯示游標
for迴圈迭代游標時會自動開啟游標,所以不能手動開啟
1.2.3 通過fetch關鍵字將游標中的資料行抓取到指定行型別
1.2.4 使用完游標,需要手動關閉
for迴圈使用完游標會自動關閉,無需手動關閉
declare
-- 宣告乙個顯示游標
cursor my_cursor is
select * from emp where deptno = 20;
-- 表示emp表的行型別
emp_row emp%rowtype;
begin
-- 顯示游標必須先開啟
open my_cursor;
loop
-- 通過fetch關鍵字抓取出一行資料
fetch my_cursor into emp_row;
-- 當游標中沒有資料可取時退出迴圈
exit
when my_cursor%notfound;
dbms_output.put_line('ename: ' || emp_row.ename || ', sal: ' || emp_row.sal);
endloop;
-- 使用完游標時需要關閉
close my_cursor;
end;
/* for迴圈操作游標。
無需手動開啟和關閉
無需宣告for迴圈的臨時變數
*/declare
-- 宣告乙個顯示游標
cursor my_cursor is
select * from emp where deptno = 20;
begin
-- for迴圈會自動開啟游標,無需手動開啟
for emp_row in my_cursor loop
dbms_output.put_line('ename: ' || emp_row.ename || ', sal: ' || emp_row.sal);
endloop;
end;
1.3 ref動態游標
declare
dno number;
emp_row emp%rowtype;
-- 首先宣告游標型別
type my_ref_cursor is ref cursor return emp%rowtype;
-- 使用游標型別宣告游標變數
-- cur_emp1 表示游標變數,是my_ref_cursor型別的游標變數
cur_emp1 my_ref_cursor;
begin
dno := &dno;
-- 動態游標是在open時才動態指定查詢sql
open cur_emp1 for
select * from emp where deptno = dno;
fetch cur_emp1 into emp_row;
-- 迴圈遍歷游標中的資料
while cur_emp1%found loop
dbms_output.put_line('ename: ' || emp_row.ename || ', sal: ' || emp_row.sal);
fetch cur_emp1 into emp_row;
endloop;
-- 關閉游標
close cur_emp1;
end;
-- ** for迴圈不能作用於ref動態游標
oracle游標筆記
游標 cursor 也叫游標,在關聯式資料庫中經常使用,在pl sql程式中可以用cursor與select一起對錶或者檢視中的資料進行查詢並逐行讀取。oracle游標分為顯示游標和隱式游標。顯示游標 explicit cursor 在pl sql程式中定義的 用於查詢的游標稱作顯示游標。隱式游標 ...
Oracle游標學習筆記
游標按以下操作進行 parse 解析 bind 繫結 open 開啟 execute 執行 fetch 回取 close 關閉 1.寫自己第乙個游標pl sql declare cursor c s is select from user tables begin open c s 開啟游標 clo...
oracle學習筆記(五)游標
游標在資料庫操作中有著十分重要的作用,它簡單地說就相當於指標,針對表中檢索出來的結果進行操作,游標分為顯示游標和隱式游標。顯示游標是使用者可以自己宣告和操作的,通常用於操作查詢結果集。通過他來處理資料主要分為四步驟,首先是宣告游標,其次是開啟游標,然後讀取游標,最後關閉游標。1.宣告游標必須指定名稱...