《北大青鸟软件园:Oracle中使用游标》.doc
文本预览下载声明
北大青鸟软件园:Oracle中使用游标
北大青鸟上地软件园校区由北大青鸟总部授权成立,位于被誉为“中关村明珠”的上地,是上地唯一的软件工程师培训基地。周围不但有清华大学、北京大学等全国著名学府,还汇集了中国科学院、联想、百度、IBM等众多科研院所和IT名企,高端资源优势可谓中国最大、世界少有。校区以多层次、多渠道、多元化的方式办学,致力于培养信息产业的高级管理和技术开发人才。依托中关村软件园的优势和资源,软件园校区与上千家企业建立了合作关系,充分保障了学员的就业。一、游标简介:? ? 游标是PLSQL中的一种控制结构。可以分为显式游标和隐式游标。plsql会为每一条select语句创建隐式游标。但是当我们需要处理多条数据时,我们就需要创建显式游标。注意:游标不是模式对象。二、游标的几种常见属性:1、%FOUND--判断游标中是否还有数据,若有,返回true,否则,返回false。2、%NOTFOUND--与%FOUND 相反3、%ISOPEN--判断游标是否为打开状态4、%ROWCOUNT--记录已从游标中取出的记录数三、游标应用实例:1、%FOUND属性的使用
DECLARE
CURSOR mycur IS
SELECT * FROM student;
myrecordstudent%ROWTYPE;
BEGIN
OPEN mycur;
FETCH mycur INTO myrecord;
WHILE mycur%FOUND LOOP
DBMS_OUTPUT.PUT_LINE(myrecord.stuno||,||myrecord.stuname);
FETCH mycur INTO myrecord;
END LOOP;
CLOSE mycur;
END;[color=black]
复制代码
2、%NOTFOUND属性的使用:
[/color]DECLARE
CURSOR cur_para(id varchar2) IS
SELECT stuname FROM student WHERE stuno=111;
t_namestudent.stuname%TYPE;
BEGIN
OPEN cur_para(111);
LOOP
FETCH cur_para INTO t_name;
EXIT WHEN cur_para%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(t_name);
END LOOP;
CLOSE cur_para;
END;[color=black]
复制代码
3、for循环中游标的特殊使用:
[/color]DECLARE
? ?CURSOR cur_para(id varchar2) IS
??SELECT stuname FROM student WHERE stuno=id;
??BEGIN
??DBMS_OUTPUT.PUT_LINE(*****);
??FOR cur IN cur_para(111) LOOP
??DBMS_OUTPUT.PUT_LINE(cur.stuname);
??END LOOP;
??END;[color=black]
复制代码
4、%ISOPEN属性的使用:
[/color]DECLARE
? ?t_namestudent.stuname%TYPE;
? ?CURSOR cur(id varchar2) IS
? ?SELECT stuname FROM student WHERE stuno=id;
??BEGIN
? ?IF cur%ISOPEN THEN
??DBMS_OUTPUT.PUT_LINE(THE cur has been opened);
? ?ELSE
??OPEN cur(111);
??END IF;
??FETCH cur INTO t_name;
CLOSE cur;
DBMS_OUTPUT.PUT_LINE(t_name);
END;[color=black]
复制代码
5、%ROWCOUNT属性的使用:
[/color]DECLARE
??t_name VARCHAR2(10);
??CURSOR mycur IS
??SELECT stuname FROM student;
??BEGIN
??OPEN mycur;
??LOOP
??EXIT WHEN mycur%NOTFOUND OR mycur%NOTFOUND IS NULL;
??DBMS_OUTPUT.PUT_LINE(*****ROWCOUNT****||mycur%ROWCOUNT);
END LOOP;
CLOSE mycur;
END;[color=black]
复制代码
/
网址
显示全部