游標使用2

2021-08-26 19:01:20 字數 2134 閱讀 1284

--3.將游標的當前行取出存放到變數中

fetch cur_stu into v_stuno,v_stuname;

loop

if cur_stu%found then --如果游標cur_stu所指還有資料行

--列印結果

dbms_output.put_line(v_stuno||'->'||v_stuname);

--繼續將游標所指的當前行取出放到變數中

fetch cur_stu into v_stuno,v_stuname;

else

exit;

end if;

end loop;

close cur_stu; --4.關閉游標

end;

end proc_stu2;

(3).使用for迴圈處理游標

create or replace procedure proc_stu3 as

begin

--顯示游標使用,使用for迴圈

declare

--定義游標,名稱為cur_stu

cursor cur_stu is

select stuno,stuname from student order by stuno;

begin

for stu in cur_stu

loop

dbms_output.put_line(stu.stuno||'->'||stu.stuname);

--迴圈做隱含檢查 %notfound

end loop;

--自動關閉游標

end;

end proc_stu3;

(4).常用的使用exit when處理游標

create or replace

procedure proc_stu1_1 as

begin

--顯示游標使用,使用exit when迴圈

declare

--1.定義游標,名稱為cur_stu

cursor cur_stu is

select stuno,stuname from student order by stuno;

--定義變數,存放游標取出的資料

v_stuno varchar(4);

v_stuname varchar(20);

begin

--2.開啟游標cur_stu

open cur_stu;

loop

--3.將游標的當前行取出存放到變數中

fetch cur_stu into v_stuno,v_stuname;

exit when cur_stu%notfound; --游標所指還有資料行,則繼續迴圈

--列印結果

dbms_output.put_line(v_stuno||'->'||v_stuname);

end loop;

close cur_stu; --4.關閉游標

end;

end proc_stu1_1;

二.隱式游標

1.使用演示

create or replace procedure proc_stu4 as

begin

--隱式游標使用

update student set stuname='張燕廣' where stuno='1104';

--如果更新沒有匹配則插入一條新記錄

if sql%notfound then

insert into student(stuno,stuname,age,gender)

values('1104','張燕廣',18,'男');

end if;

end proc_stu4;

2.說明

所有的sql語句在上下文區內部都是可執行的,因為都有乙個游標指向上下文區,此游標就是

sql游標,與現實游標不同的是,sql游標在pl/sql中不需要開啟和關閉,而是在執行update、

delete是自動開啟和關閉。

上面例子中就是通過sql%notfound游標屬性判斷update語句的執行結果決定是否需要插入新記錄。

Oracle 游標使用大全2

游標for迴圈 在大多數時候我們在設計程式的時候都遵循下面的步驟 1 開啟游標 2 開始迴圈 3 從游標中取值 4 檢查那一行被返回 5 處理 6 關閉迴圈 7 關閉游標 可以簡單的把這一類 稱為游標用於迴圈。但還有一種迴圈與這種型別不相同,這就是for迴圈,用於for迴圈的游標按照正常的宣告方式宣...

Oracle 游標使用大全2

游標for迴圈 在大多數時候我們在設計程式的時候都遵循下面的步驟 1 開啟游標 2 開始迴圈 3 從游標中取值 4 檢查那一行被返回 5 處理 6 關閉迴圈 7 關閉游標 可以簡單的把這一類 稱為游標用於迴圈。但還有一種迴圈與這種型別不相同,這就是for迴圈,用於for迴圈的游標按照正常的宣告方式宣...

Oracle 游標使用大全2

游標for迴圈 在大多數時候我們在設計程式的時候都遵循下面的步驟 1 開啟游標 2 開始迴圈 3 從游標中取值 4 檢查那一行被返回 5 處理 6 關閉迴圈 7 關閉游標 可以簡單的把這一類 稱為游標用於迴圈。但還有一種迴圈與這種型別不相同,這就是for迴圈,用於for迴圈的游標按照正常的宣告方式宣...