网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库资料OraPlsqlTps2.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
wnt 2000(C) copyright 应用于Web的面向对象关系型数据库管理系统:Oracle 游标和复合数据类型 本章目标 游标简介 游标类型 隐式游标 显式游标 游标功能 定义游标 操纵游标 游标属性 本章目标(续) 游标 FOR 循环 参数化游标 UPDATE OF 和 CURRENT OF 的游标 PL/SQL 表 PL/SQL 记录 游标简介 要处理 SQL 语句, PL/SQL 打开一个称作环境区域的工作区 PL/SQL 使用该区域执行 SQL 语句和存储处理信息 称作“游标”的 PL/SQL 结构允许您命名环境区域,访问其信息及在某些情况下控制其处理过程 游标简介(续) 查询返回多行时,可以将游标显式地定义为 在查询所返回的首行之外的处理 对当前正在处理的行进行跟踪 由多行查询返回的行集称作活动集 游标类型 PL/SQL 使用两类游标 隐式游标 由 Oracle 自动定义并打开,用于处理每个 SQL语句 最近打开的环境区域被称为“SQL%”游标 显式游标 如果查询返回多行,则可定义显式游标来对当前正在处理的行进行跟踪 游标功能 游标名是一个未声明的标识符,仅用于引用查询 不能对游标赋值,也不能在表达式中使用游标名 显式游标可以有参数 游标参数可以出现在查询中常量出现的任何位置上 可以将游标参数初始化为默认值 游标的功能(续) 可以将实参的不同值传递到游标,按需要采用或替换默认值 游标参数的范围对于游标来讲是局部变量 当游标为 OPENED 时,游标参数的值可以用于相关的查询 定义游标 可以通过在 PL/SQL 程序块的声明部分命名游标或将它与某个查询关联来定义一个游标 CURSOR 游标名 IS SELECT statement; 示例 CURSOR emp_cur IS SELECT empno, ename, job, sal FROM emp; 操纵游标 可以使用下列语句操纵游标 OPEN FETCH CLOSE 在使用 OPEN、 CLOSE 或 FETCH 语句引用这些语句之前必须对游标进行声明 OPEN 语句 初始化或打开游标 在查询返回任何行之前必须打开游标 打开游标将执行查询并识别活动集合 OPEN 游标名 示例 OPEN emp_cur; FETCH 语句 一次只能在一个活动集合中检索行 可以重复执行,直到检索到了所有行 FETCH 游标名 INTO var1, …, varN; OR FETCH 游标名 INTO record_variable; 示例 FETCH emp_cur INTO mrec; CLOSE 语句 关闭游标并让活动集合成为未定义内容 CLOSE 游标名; 示例 CLOSE emp_cur; 只要游标关闭,可以通过使用 OPEN 语句重新打开它 显式游标的属性 每个游标有四个属性可以用于访问游标的环境区域 %NOTFOUND %FOUND %ROWCOUNT %ISOPEN 要使用这些属性,只要简单地将它们添加到游标名后即可 显式游标的属性(续) %NOTFOUND 如果因为没有多行而使最后的 FETCH 失败,则判定为 TRUE 如果最后的 FETCH 返回一行,则判定为 FALSE %FOUND 如果最后的 FETCH 返回一行,则判定为 TRUE 如果因为没有多行而使最后的 FETCH 失败,则判定为 FALSE 显式游标的属性(续) %ROWCOUNT 返回当前从活动集合获取的行数 %ISOPEN 如果打开显示游标,则判定为 TRUE 如果关闭显示游标,则判定为 FALSE 显式游标的属性(续) 示例 IF emp_cur%ISOPEN THEN FETCH emp_cur INTO m_rec; IF emp_cur%FOUND THEN msr_no := emp_cur%ROWCOUNT; END IF; ELSE OPEN emp_cur; END IF; 游标 FOR 循环 将它的循环索引声明为 %ROWTYPE 的记录 隐式地打开游标 从活动集反复获取行的值并传送到记录中的字段 在处理完所有行,并且循环退出时,隐式地关闭游标 游标 FOR 循环(续) 为满足与游标名相关的查询的每一行执行循环结构中的语句 游标 FOR 循环用于简化代码编写 游标 FOR 循环(续) DECLARE CURSOR emp_cur IS SELECT empno, ename, job, sal FROM emp; BEGIN FOR mrec IN emp_cur LOOP INSERT INTO temp VALUES( mrec.empno,mrec.ename, mre

文档评论(0)

shaoye348 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档