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

第十四课Oracle__游标和异常处理.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四课Oracle__游标和异常处理.ppt

动态SQL简介 动态SQL包括本地动态SQL和DBMS_SQL动态SQL两种实现方法。 Execute immediate语句 为了在动态SQL中处理DDL、DCL、DML以及单行select into语句,需要使用execute immediate语句。 1、execute immediate语句处理DDL和DCL语句 语法如下: execute immediate dyn_string 2、使用execute immediate语句处理DML语句 (1)处理无占位符和returning子句的DML语句 语法如下: execute immediate dyn_string (2)处理包含占位符的DML语句 (3)处理包含returning子句的DML语句 3、使用execute immediate语句处理单行语句 语法如下: execute immediate dyn_string into var1,…… 游标变量 游标变量是基于REF CURSOR类型所定义的变量。使用显示游标只能定义静态游标,而通过使用游标变量可以在打开游标时指定游标所对应的select语句,从而实现动态游标。 游标变量 游标变量包括定义游标变量、打开游标变量、提取数据和关闭游标四个阶段。 游 标 为什么要使用游标? 什么是游标? 就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 游标的构成 游标由结果集和结果集中指向特定记录的游标位置组成,游标充当指针的作用。尽管游标能够遍历查询结果中的所有行,但它一次只能指向一行。 Oracle中游标的分类 在Oracle中游标可以分为两种类型: 显式游标和隐式游标。 显式游标的使用 使用显式游标分四个步骤: 显式游标的使用 显式游标的使用 显式游标的使用 参数游标 参数游标是指带有参数的游标 。 DECLARE cursor c_emp (v_empno number) is select * from scott.emp where empno=v_empno; v_emp scott.emp%rowtype; BEGIN open c_emp(7369) ; fetch c_emp into v_emp; dbms_output.put_line(v_emp.ename); close c_emp; END; 练习:使用非参数游标(替代变量)获取任何编号员工的所有信息。 DECLARE cursor c_emp is select * from scott.emp where empno=v_empno; v_emp scott.emp%rowtype; BEGIN open c_emp; fetch c_emp into v_emp; dbms_output.put_line(v_emp.ename); END; 例:使用游标获取任何编号员工的所有信息,对于不存在的编号显示“您输入的编号不存在”。 DECLARE cursor c_emp is select * from scott.emp where empno=v_empno; v_emp scott.emp%rowtype; BEGIN open c_emp; fetch c_emp into v_emp; IF c_emp%found then dbms_output.put_line(v_emp.ename); ELSE dbms_output.put_line(您输入的编号不存在!); END IF; END; 练习:使用参数游标获取任何部门编号的员工姓名信息,并返回记录条数。对于不存在的编号显示“您输入的编号不存在”。 DECLARE cursor c_e_dept(dno number) is select * from scott.emp where deptno=dno; v_emp_dept scott.emp%rowtype; v_dno emp.deptno%type:=deno; v_count binary

文档评论(0)

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

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

1亿VIP精品文档

相关文档