文档详情

第6章光标.ppt

发布:2017-07-27约1.7千字共40页下载文档
文本预览下载声明
Oracle数据库技术;教学目标;重点;游 标 ;;;使用游标的基本方法 ;使用游标的基本方法 ;使用游标的基本方法 ;;Fetch cursor_name into v1,v2,…,vn; Or Fetch cursor_name into cursor_name%rowtype; Or Fetch cursor_name into table_name%rowtype;使用游标的基本方法 ;;使用游标的基本方法 ;使用游标的基本方法 ;使用游标的基本方法 ;While loop开始之前的第一个FETCH语句对确保WHILE LOOP循环的条件值为TRUE是非常必要的。使用%FOUND属性来检查,如果没有前面的FETCH语句,那么%FOUND属性就不 会为真(即使有记录存在), %NOTFOUND 属性 的值和%FOUND 值一样都为NULL。 与LOOP ……END LOOP对照,后者的 EXIT判断语句之前要有一FETCH 语句;使用游标FOR循环 DECLARE CURSOR C1 IS SELECT VIEW_NAME FROM ALL_VIEWS WHERE ROWNUM = 10 ORDER BY VIEW_NAME; BEGIN FOR I IN C1 LOOP DBMS_OUTPUT.PUT_LINE(I.VIEW_NAME); END LOOP; EXCEPTION WHEN OTHERS THEN NULL; END;;FOR LOOP游标的索引不需要声明,它有PL/SQL隐式的定义为cursor%rowtype类型。 当需要在一个游标中无条件的处理所有行,用FOR LOOP语句是很好的。 对应例子文件中的第5-10例;练习: 使用游标实现:将任意一门(每门)课程成绩高于课程平均分的学生所选的所有课程的姓名,课程名,成绩格式化输出。;代码; 可以在游标名称后面 ,用括号括起参数的名称和类型来定义游标的参数。这些参数叫形参。实参由OPEN语句传递到形参中。;带参数的光标 DECLARE CURSOR C1(VIEW_PATTERN VARCHAR2) IS SELECT VIEW_NAME FROM ALL_VIEWS ? WHERE VIEW_NAME LIKE VIEW_PATTERN||% AND? ROWNUM=10 ? ORDER BY VIEW_NAME; ?? VNAME VARCHAR2(40);;BEGIN ??? FOR I IN C1(USER_AR) LOOP ????? DBMS_OUTPUT.PUT_LINE(I.VIEW_NAME); END LOOP; DBMS_OUTPUT.PUT_LINE(‘’); FOR I IN C1(USER) LOOP ? DBMS_OUTPUT.PUT_LINE(I.VIEW_NAME); END LOOP; EXCEPTION WHEN OTHERS THEN ?? DBMS_OUTPUT.PUT_LINE(AAA); END; 对应例子文件中的第11,12例;SELECT FOR UPDATE游标;SELECT FOR UPDATE游标;SELECT FOR UPDATE游标;SELECT FOR UPDATE游标;隐式游标;隐???游标;隐式游标;游标变量-动态游标 ;游标变量-动态游标 ;游标变量-动态游标 ;使用游标变量;使用游标变量;使用游标变量;使用游标变量;小结(1);小结(2)
显示全部
相似文档