了解 Oracle 的游標

2021-09-24 23:54:16 字數 2353 閱讀 7341

一,概念:

游標是sql的乙個記憶體工作區,由系統或使用者以變數的形式定義。游標的作用就是用於臨時儲存從資料庫中提取的資料塊。

二, 作用:

用於定位結果集的行遍歷結果集

三, 使用:

建立乙個游標:

type ref_cur  定義型別變數        s ref cursor:相當於資料型別,不過是引用游標的資料型別。

type ref_cur is ref cursor

procedure call_del_ls(in_pch in varchar2) is

l_sql varchar2(100);

--1,建立游標型別

c_table_name ref_cur;

l_table_name varchar2(40);

l_id number;

begin

--2 游標是否開啟,始終為false;

if c_table_name%isopen then

close c_table_name;

end if;

-- 3,開啟游標,sql查詢的結果集用 游標接收並且迴圈游標

open c_table_name for select table_name,to_number(id) id from ls_de_table order by id;

--4,迴圈遍歷資料

loop

fetch c_table_name into l_table_name,l_id;

exit when c_table_name%notfound;

l_sql:='delete ls_'||l_table_name||' where pch = '''||in_pch||'''';

execute immediate l_sql;

commit;

end loop;

end;

也可以建立 游標 接受   sql語句的結果集

cursor 游標名 ( 引數 ) [返回值型別] is select語句;

--1.宣告游標

cursor vrows is select * from emp;

隱式游標:

sql%rowcount    整型   返回結果集成功執行的資料行數   

sql%found 布林型 值為true代表插入、刪除、更新或單行查詢操作成功

sql%notfound 布林型 與sql%found屬性返回值相反

sql%isopen 布林型 dml執行過程中為真,結束後為假

遍歷游標 :

create or replace procedure myprocedure is

cursor cur_test is --聲明顯式游標

select ecode,ename

from emp;

cur cur_test%rowtype; --定義游標變數,該變數的型別為基於游標c_emp的記錄

begin

--for 迴圈

for cur in cur_test loop

--迴圈體

dbms_output.put_line('員工編號:'||cur.ecode ||'員工姓名:'|| cur.ename);

end loop;

--fetch 迴圈

open cur_test;--必須要明確的開啟和關閉游標

loop

fetch cur_test into cur;

exit when cur_test%notfound;

--迴圈體

dbms_output.put_line('員工編號:'||cur.ecode ||'員工姓名:'|| cur.ename);

end loop;

close c_emp;

--while 迴圈

open cur_test;--必須要明確的開啟和關閉游標

fetch cur_test into cur;

while cur_test%found loop

--迴圈體

dbms_output.put_line('員工編號:'||cur.ecode ||'員工姓名:'|| cur.ename);

fetch cur_test into cur;

end loop;

close c_emp;

end myprocedure;

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的游標筆記

1.游標 游標是一條sql語句執行之後的結果狀態資訊 1.1 隱式游標 當執行dml語句時,會自動建立隱式游標,包含 found 影響大於0條資料為true notfound 影響0條資料為true rowcount 影響資料的條數 isopen 是否開啟,隱式游標始終為false 隱式游標的名稱叫...