第12章 游标管理.pptVIP

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 游标管理

谢谢 * * [思路]从一个问题入手:给全班同学随机排考号,根据t_student表形成考试座次表t_examorder(f_stuid,f_order) 如何完成这样一个PL/SQL程序??我们需要这样的一个功能:逐条处理查询结果集的每条记录 初步认识什么是游标,然后逐个说明每一种游标 [说明]此处简单讲述内置包dbms_random的用法 * [说明]游标也可分为两类:静态游标(隐式、显式)与REF游标(动态游标) * [说明]隐式游标:只能使用,不能定义和控制 * [例]将编号为001的学生姓名改为张三丰 * [例]根据用户输入修改相应学生姓名 * [演示]SQL%Found、SQL%RowCount的用法:将学生表中2班的同学系别改为化学系(‘CHE’),并显示修改记录个数 begin update t_student set f_department=CHE where f_class=2; if SQL%Found then dbms_output.put_line(修改记录数为:||SQL%RowCount); else dbms_output.put_line(未找到相应记录); end if; end; / * 先看明白课件上的例子(2),然后做以下这个例子 [例]根据输入系别显示学生姓名 declare name t_student.f_name%type; department t_student.f_department%type; begin department:=department; select f_name into name from t_student where f_department=department; dbms_output.put_line(学生姓名:||name); exception when no_data_found then dbms_output.put_line(未找到相关记录); when too_many_rows then dbms_output.put_line(该查询提取多行); end; / * * [思路]隐式游标功能有限,显式游标可提供更为强大的功能 * 先看书上的语法:定义游标、打开游标、获取记录、关闭游标(说明:获取记录后游标自动下移一个) 再看例子,如何使用 做以下例子,练习显式游标的使用 [例]显示系别为’CS’的学生姓名 set serveroutput on declare name t_student.f_name%type; Cursor cur_stu Is select f_name from t_student where f_department=CS; begin Open cur_stu; Loop Fetch cur_stu Into name; Exit When cur_stu%NotFound; dbms_output.put_line(学生姓名:||name); End Loop; Close cur_stu; end; / * [注]该处参数未使用,我的例子也是如此,修改下 [例]根据输入系别显示学生姓名、出生日期 set serveroutput on declare name t_student.f_name%type; birth t_student.f_birth%type; department t_student.f_department%type; Cursor cur_stu Is select f_name,f_birth from t_student where f_department= department; begin department:=department; Open cur_stu; Loop Fetch cur_stu Into name,birth; Exit When cur_stu%NotFound; dbms_output.put_line(学生姓名:||name|| 出生日期:||birth); End Loop; Close cur_stu; end; / * [思路]也许我们感到上面循环使用游标的方式不够方便,可使用循环游标 [说明]注意循环游标必须提取游标中的所有记录 * [例]显示系别为’CS’的学生信息(学号、姓名、出生日期) set serveroutput on declare stu t_student%RowType; Cursor cur_s

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档