- 1、本文档共48页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 游标、存储过程和触发器 课程描述 介绍Oracle数据库程序设计中经常会用到的3个概念,即游标、存储过程和触发器。 本章知识点 游标 存储过程管理 触发器管理 游标 游标的基本概念 游标控制语句 游标属性 游标FOR循环 游标的基本概念 游标示意图 游标的基本概念 使用显式游标 (1)说明游标。 (2)打开游标。 (3)读取数据。 (4)关闭游标。 游标的基本概念 隐式游标 【例】使用SELECT语句声明隐式游标,从HR.Departments表中读取Department_name字段的值到变量DepName: SET ServerOutput ON; DECLARE DepName HR.Departments.Department_Name%Type; BEGIN SELECT Department_name INTO DepName FROM HR.Departments WHERE Department_ID=10; dbms_output.put_line(DepName); END; 游标控制语句 (1)声明游标语句CURSOR: DECLARE CURSOR 游标名 [ (参数列表) ] IS SELECT语句; 【例】声明一个游标MyCur,读取指定类型的用户信息: DECLARE CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType; 游标控制语句 (2)打开游标语句OPEN: OPEN 游标名 [ (参数列表) ]; 【例】打开游标MyCur,读取类型为1的用户信息: OPEN MyCur(1); 游标控制语句 (3)游标取值语句FETCH。游标取值语句FETCH的基本语法结构如下: FETCH 游标名 INTO 变量列表; 【例】在打开的游标MyCur的当前位置读取数据: FETCH MyCur INTO varI,d varName; (4)关闭游标语句CLOSE: CLOSE 游标名; 【例】关闭游标MyCur: CLOSE MyCur; 游标控制语句 【例】下面介绍一个完整的游标应用实例: /* 打开显示模式 */ SET ServerOutput ON; DECLARE --开始声明部分 varId NUMBER; --声明变量,用来保存游标中的用户编号 varName VARCHAR2(50); --声明变量,用来保存游标中的用户名 --定义游标, varType为参数, 指定用户类型编号 CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType; BEGIN --开始程序体 OPEN MyCur(1); --打开游标,参数为1,表示读取用户类型编号为1的记录 FETCH MyCur INTO varId, varName; --读取当前游标位置的数据 CLOSE MyCur; --关闭游标 dbms_output.put_line(用户编号: || varId ||, 用户名: || varName); --显示读取的数据 END; --结束程序体 游标属性 (1)%ISOPEN属性 【例】下面的代码演示当使用未打开的游标时,将会出现错误: /* 打开显示模式 */ SET ServerOutput ON; DECLARE --开始声明部分 varName VARCHAR2(50); --声明变量,用来保存游标中的用户名 varId NUMBER; --声明变量,用来保存游标中的用户编号 --定义游标, varType为参数, 指定用户类型编号 CURSOR MyCur(varType NUMBER) IS SELECT UserId, UserName FROM Users WHERE UserType = varType; BEGIN --开始程序体 FETCH MyCur INTO varId, varName; --读取当前游标位置的数据 CLOSE MyCur; --关闭游标 dbms_output.put_line(用户编号: || varId ||, 用户名: || varName); --显示读取的数据 END; --结束程序体 游标属性 【例】修改上面的程序,在使用游标之前,调用%ISOPEN属性判断游标是否打开
文档评论(0)