第10篇 游标.ppt

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 修改员工号为1000的员工工资,将其工资增加100。如果该员工不存在,则向emp表中插入一个员工号为1000,工资为1500的员工。 BEGIN UPDATE emp SET sal=sal+100 WHERE empno=1000; IF SQL%NOTFOUND THEN INSERT INTO emp(empno,sal) VALUES(1000,1500); END IF; END; 或 BEGIN UPDATE emp SET sal=sal+100 WHERE empno=1000; IF SQL%ROWCOUNT=0 THEN INSERT INTO emp(empno,sal) VALUES(1000,1500); END IF; END; 处理隐式游标 例:删除EMP 表中20号部门的所有员工,如果该部门中已没有员工可删除,则在DEPT 表中删除该部门 DECLARE V_deptno emp.deptno%TYPE :=20; BEGIN DELETE FROM emp WHERE deptno=v_deptno; IF SQL%NOTFOUND THEN DELETE FROM dept WHERE deptno= 20; END IF; END; 2007-9 东北大学东软信息学院计算机系 * Fetch 游标名 bulk collect into 集合1,集合2,...[limit 行数] 2007-9 东北大学东软信息学院计算机系 * DECLARE increment number(4); CURSOR c_emp(p_deptno emp.deptno%type)IS SELECT * FROM EMP WHERE deptno = p_deptno; BEGIN for I in 1..3 loop for emp_record in c_emp(I*10) loop increment:=100*I; update emp set sal = sal +increment where EMPNO= emp_record.empno; end loop; end loop; END; 第10章 游标 黑龙江大学 计算机科学技术学院 * 游 标 游标的概念及类型 显式游标 隐式游标 * 游标的概念 游标的概念 使用游标的原因 对表进行操作的T_SQL语句通常都可产生或处理一组记录,但是许多应用程序(如C,VB,PB等)通常不能把结果集作为一个单元来处理,因此这些环境要求保证每次处理结果集中的一行或几行. 游标(CURSOR)是Oracle系统在内存中开辟的一个工作区,在其中存放SELECT语句返回的查询结果。 使用游标时,SELECT语句查询的结果可以是单条记录,多条记录,也可以是零条记录。 游标提供了对结果集进行逐行处理的能力. 游标工作区中,存在着一个指针(POINTER),在初始状态它指向查询结果的首记录,可以指向结果集的任意位置 * 游标的类型 显式游标 由用户定义、操作,用于处理返回多行数据的SELECT查询。 隐式游标 由系统自动进行操作,用于处理DML语句和返回单行数据的SELECT查询。 * 显式游标 显式游标的操作过程 显式游标的属性 参数化显式游标 显式游标的检索 利用游标更新或删除数据 显示游标的使用过程 使用cursor语句声明游标 使用OPEN语句打开游标 使用FETCH into 语句从游标中提取数据 使用close语句关闭游标 空否 No Yes * 定义游标 语法格式 CURSOR cursor_name IS select_statement ; 说明 游标必须在PL/SQL块的声明部分进行定义; 游标定义时可以引用PL/SQL变量,但变量必须在游标定义之前定义; 定义游标时并没有生成数据,只是将定义信息保存到数据字典中; 游标定义后,可以使用cursor_name%ROWTYPE定义游标类型变量。 例如:    DECLARE CURSOR XS_CUR1 IS    SELECT XH,XM,CJ FROM XS     WHERE ZYM=’计算机’; v_xs xs%rowtype; * 提取游标 语法格式 FETCH cursor_name INTO variable_list | record_variable; 说明 在使

文档评论(0)

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

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

1亿VIP精品文档

相关文档