亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

Oracle 游標使用總結

2024-08-29 13:56:21
字體:
來源:轉載
供稿:網友
Oracle游標分為顯示游標和隱式游標。
顯示游標(Explicit Cursor):在PL/SQL程序中定義的、用于查詢的游標稱作顯示游標。
隱式游標(Implicit Cursor):是指非PL/SQL程序中定義的、而且是在PL/SQL中使用UPDATE/DELETE語句時,Oracle系統自動分配的游標。
一.顯示游標
1.使用步驟
(1)定義 (2)打開 (3)使用 (4)關閉
2.使用演示
首先創建測試用表STUDENT,腳本如下:

復制代碼 代碼如下:


CREATE TABLE "STUDENT" (
"STUNAME" VARCHAR2(10 BYTE),
"STUNO" VARCHAR2(4 BYTE),
"AGE" NUMBER,
"GENDER" VARCHAR2(2 CHAR)
)


(1).使用WHILE循環處理游標
create or replace PROCEDURE PROC_STU1 AS
BEGIN
--顯示游標使用,使用while循環
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;
--3.將游標的當前行取出存放到變量中
fetch cur_stu into v_stuno,v_stuname;
while cur_stu%found --游標所指還有數據行,則繼續循環
loop
--打印結果
dbms_output.PUT_LINE(v_stuno||'->'||v_stuname);
--繼續將游標所指的當前行取出放到變量中
fetch cur_stu into v_stuno,v_stuname;
end loop;
close cur_stu; --4.關閉游標
end;
END PROC_STU1;
(2).使用IF..ELSE代替WHILE循環處理游標
create or replace PROCEDURE PROC_STU2 AS
BEGIN
--顯示游標使用,使用if判斷
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;
--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語句的執行結果決定是否需要插入新記錄。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区香蕉久久| 中文字幕日韩专区| 欧美高清视频在线播放| 国产成人黄色av| 中文欧美日本在线资源| 国产精品久久77777| 日韩激情片免费| 第一福利永久视频精品| 夜夜躁日日躁狠狠久久88av| 久久精品免费电影| 国产精品视频在线播放| 色无极影院亚洲| 国产精品香蕉av| 久久视频在线直播| 国产日韩精品一区二区| 久久av.com| 欧美中在线观看| 亚洲午夜精品视频| 日韩经典第一页| 国产精品日日做人人爱| 亚洲精品自拍偷拍| 亚洲a∨日韩av高清在线观看| 欧美激情一区二区久久久| 亚洲男人的天堂网站| 亚洲欧美三级伦理| 色无极亚洲影院| 欧美xxxwww| 国产亚洲精品成人av久久ww| 欧美在线观看日本一区| 欧美夫妻性视频| 亚洲深夜福利网站| 亚洲一区av在线播放| 久久精品国产一区二区电影| 日韩欧美aⅴ综合网站发布| 国产日韩精品在线观看| 欧美日本亚洲视频| 全亚洲最色的网站在线观看| 精品国产乱码久久久久久婷婷| 国产噜噜噜噜噜久久久久久久久| 九九热r在线视频精品| 正在播放国产一区| 精品夜色国产国偷在线| 久久av红桃一区二区小说| 在线观看国产成人av片| 一区二区三区 在线观看视| 亚洲成人中文字幕| 国产综合在线视频| 自拍偷拍亚洲欧美| 久久久精品久久久| 国产视频在线观看一区二区| 亚洲成人a**站| 亚洲欧美在线一区| 日韩在线观看网站| 98午夜经典影视| 91精品在线影院| 精品爽片免费看久久| 久久综合伊人77777蜜臀| 青青草原一区二区| 日韩在线免费av| 欧美激情国产高清| 亚洲欧美色图片| 久久精品99久久久久久久久| 久久精品中文字幕| 8090成年在线看片午夜| 久久国产精品免费视频| 日韩成人激情在线| 日韩欧美精品免费在线| 欧美激情一区二区三区成人| 精品亚洲一区二区三区在线观看| 色婷婷综合久久久久| 国产91在线高潮白浆在线观看| 亚洲深夜福利网站| 亚洲一区二区中文字幕| 久久久爽爽爽美女图片| 在线观看精品国产视频| 国产成人精品在线视频| 91在线观看免费| 国产在线观看精品一区二区三区| 国产精品成人av性教育| 亚洲一区二区三区xxx视频| 国产精品久久国产精品99gif| 色久欧美在线视频观看| 日韩免费精品视频| 福利视频一区二区| 2018中文字幕一区二区三区| 麻豆乱码国产一区二区三区| 欧美www视频在线观看| 国产视频精品在线| 欧美最近摘花xxxx摘花| 欧美性猛交视频| 久久久久久网址| 国产精品视频1区| 国产午夜精品全部视频播放| 欧美激情视频在线| 欧美福利视频在线| 国产精品黄色影片导航在线观看| 亚洲乱码国产乱码精品精| 热re91久久精品国99热蜜臀| 久久97久久97精品免视看| 日韩免费av一区二区| 亚洲成人在线网| 久久久精品国产一区二区| 亚洲精品成人av| 欧美激情一二三| 久久免费视频网站| 日韩视频在线一区| 亚洲风情亚aⅴ在线发布| 精品性高朝久久久久久久| 欧美亚洲一级片| 久久天天躁狠狠躁夜夜躁| 精品国产成人在线| 欧美日韩国产精品专区| 国产一区二区av| 精品久久久香蕉免费精品视频| 97在线日本国产| 国产精品久久久久久久天堂| 97精品视频在线观看| 国产日韩欧美在线观看| 色悠悠久久88| 最近2019年中文视频免费在线观看| 国产精品尤物福利片在线观看| 日韩一区二区福利| 欧美大片免费观看在线观看网站推荐| 久久国产精彩视频| 国产成人啪精品视频免费网| 成人免费视频网址| 日韩av在线免费| 538国产精品一区二区在线| 在线观看免费高清视频97| 亚洲精品国偷自产在线99热| 国产伦精品免费视频| 久久91精品国产91久久跳| 亚洲人永久免费| 精品久久久久久久久久ntr影视| 国产成人精品综合久久久| 欧美一级黑人aaaaaaa做受| 亚洲桃花岛网站| 久久久久久久成人| 成人黄色激情网| 久久91精品国产91久久跳| 日韩电影免费在线观看| 国产精品久久久久久久久借妻| 日韩欧美亚洲范冰冰与中字| 国产伦精品一区二区三区精品视频| 国产成人精品电影| 日韩精品极品在线观看播放免费视频| 中文字幕免费精品一区高清| 国产不卡视频在线| 久久不射热爱视频精品| 亚洲二区中文字幕| 欧美激情va永久在线播放| 国产一区二区三区在线视频| 色99之美女主播在线视频| 久久中文字幕在线视频| 国产精品成久久久久三级| 九色精品美女在线| 欧亚精品在线观看| 在线不卡国产精品| 亚洲精品av在线| 欧美成人亚洲成人日韩成人| 欧美成人精品激情在线观看| 欧美日韩成人在线播放| 97香蕉超级碰碰久久免费的优势| 国产日韩精品在线播放|