收藏 分享(赏)

ORACLE中的游标和异常.ppt

上传人:依依 文档编号:1123493 上传时间:2018-06-13 格式:PPT 页数:15 大小:1.26MB
下载 相关 举报
ORACLE中的游标和异常.ppt_第1页
第1页 / 共15页
ORACLE中的游标和异常.ppt_第2页
第2页 / 共15页
ORACLE中的游标和异常.ppt_第3页
第3页 / 共15页
ORACLE中的游标和异常.ppt_第4页
第4页 / 共15页
ORACLE中的游标和异常.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、游标和异常,课程目标,游标概念和用法游标属性常见游标的应用异常的分类自定义异常的声明、触发和处理,游标概念,在PL/SQL块执行SELECT ,INSERT,UPDATE,DELETE语句时,ORACLE会在内存中为其分配上下文区(Context Area)。游标是指向该区的指针,或是命名一个工作区(Work Area),或是一种结构化数据类型。它为应用程序提供了一种对具有多行数据的查询结果集中每行数据进行单独处理的方法,是设计交互式应用程序的常用编程接口。,游标优点,游标允许应用程序对查询语句select 返回的行结果集中每一行进行相同或不同的操作它还提供对基于游标位置而对表中数据进行删除或

2、更新的能力游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来使两个数据处理方式能够进行沟通,游标的分类,游标分为显示游标和隐式游标两种。隐式游标是oracle为所有数据操纵语句(包括只返回单行数据的查询语句)自动声明和操作的一种游标。显示游标是由用户声明和操作的一种游标。在每个用户会话中,可以同时打开多个游标,其数量由数据库初始化参数文件中的OPEN_CURSORS参数定义。,显式游标工作进程,把游标与 SQL 语句的结果集相关联,并且定义游标的特征,如是否能够更新游标中的行。执行 SQL 语句以填充游标。检索想要查看的游标中的行。根据需要,对游标中当前位置的行执行修改操作(更新

3、或删除)。关闭游标。,显式游标使用顺序,显示游标的使用顺序:1、定义游标2、打开游标3、提取数据4、关闭游标,DECLARE语句用于创建游标。将光标与一查询语句联系起来,用来引入表中的记录。语法 CURSOR 游标名 IS SELECT 子句; CURSOR 游标名(参数) IS SELECT COL2 WHERE COL1=参数;,定义显式游标,打开游标OPEN 游标名;提取数据 FETCH语句检索记录集中的行,每次一行,每执行一次FETCH,游标前进到记录集的下一行。关闭游标CLOSE 游标名;,使用显式游标,显式游标属性,显式游标属性 每一个显式游标有四种属性%FOUND 查询语句(FE

4、TCH语句)返回记录%NOTFOUND 查询语句(FETCH语句)无返 回记录,用于循环退出条件%ROWCOUNT FETCH已获取的记录数%ISOPEN 光标已打开标记if not C%ISOPEN then open C; end if;,Loop FETCH C INTO v_ename,v_sal;EXIT WHEN C%NOTFOUND;END LOOP;,属性使用,隐式游标处理,隐式游标处理 隐式游标是指在处理SQL时,不需定义游标,所使用的SQL语句包括:INSERT ,UPDATE,DELETE子句。隐式游标属性 SQL%FOUND SQL%NOTFOUND 由执行上述语句结果

5、引起 SQL%ROWCOUNT隐式游标的使用Begin update emp set sal=1200 where empno=1234; if SQL%NOTFOUND then insert into Errors(empno,sal) values(1234,1200); end if;End;,数据库中没有编码为1234的职工,循环游标的应用,为了简化游标操作,PL/SQL语句提供了游标FOR循环语句。工作原理:一个游标FOR循环可以隐含的实现OPEN,FETCH,CLOSE游标以及循环处理结果集的功能。其步骤是:当进入循环时,自动打开一个已经声明的游标,并提取第一行游标数据;当处理完

6、当前所提取的数据而进入下一次循环时,自动提取下一行游标数据;当提取完结果集中的所有数据行后结束循环,并自动关闭游标。除此之外,当在游标FOR循环语句中调用EXIT或GOTO语句,或者由于发生异常错误等原因而导致程序跳出循环时,PL/SQL均能自动关闭游标。,异常的分类,ORACLE中的异常可分为两类:Oracle预定义异常用户自定义异常,用户自定义异常,用户定义的例外 用户定义的例外必须在DECLARE段中说明,在Begin段中用RAISE引起,在EXCEPTION段中使用。,用户自定义异常处理,用户自定义异常的使用Declare out_of_range EXCEPTION;Begin if v_sal MAX_SAL then RAISE out_of_range; end if; Exception When NO_DATA_FOUND THEN When CURSOR_ALREADY_OPEN THEN When TOO_MANY_ROWS THEN . When out_of_range THEN .END;,例外段,在Declare段定义,在Begin段中引起,在Exception段中使用,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报