一,概念:
游標是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 隱式游標的名稱叫...