Oracle数据库教程第10章

Oracle数据库教程第10章

ID:43095953

大小:1.20 MB

页数:59页

时间:2019-09-29

Oracle数据库教程第10章_第1页
Oracle数据库教程第10章_第2页
Oracle数据库教程第10章_第3页
Oracle数据库教程第10章_第4页
Oracle数据库教程第10章_第5页
资源描述:

《Oracle数据库教程第10章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第10章游标、存储过程和触发器课程描述介绍Oracle数据库程序设计中经常会用到的3个概念,即游标、存储过程和触发器。本章知识点游标存储过程管理触发器管理游标游标的基本概念游标控制语句游标属性游标FOR循环PL/SQL块的类型PL/SQL程序块的种类分为:①命名块;②匿名块;③子程序;④触发器。其中子程序包括:函数,过程和程序包。匿名块可以用在服务器端也可以用在客户端。匿名块是只使用一次PL/SQL程序块,匿名块没有名称,也不被存储在数据库中。【例】匿名块例子。SETSERVEROUTPUTONDECLARE--

2、目前没有变量要定义BEGINdbms_output.put_line('helloworld!!!');END;块的执行SQL*PLUS中匿名的PL/SQL块的执行是在PL/SQL块后输入/来执行。匿名的PL/SQL块的缺点是,每次执行的时候都要被重新编译,并且不能被存储在数据库中(因此不能被其他PL/SQL块使用)。命名的程序与匿名程序的执行不同,执行命名的程序块必须使用execute关键字。如果在另一个命名程序块或匿名程序块中执行这个程序,那么就不需要EXECUTE关键字。游标游标:游动的光标。游标是映射在结

3、果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。游标分两种:显式游标隐式游标游标游标示意图游标游标%TYPE属性:引用变量和数据库列的数据类型为了减少这部分程序的修改,编程时使用%TYPE方式声明变量,使变量声明的类型与表中的保持同步,随表的变化而变化,这样的程序在一定程度上具有更强的通用性。使用该属性类型的优点:不需要知道被引用的表列的具体类型如果被引用对象的数据类型发生改变,PL/SQL变量的数据类型也随之

4、改变游标的基本概念隐式游标不需要声明,使用时也不需要执行打开和关闭操作。实际是在Select语句中增加了INTO子句,把结果集自动读取到指定的变量中。【例】使用SELECT语句声明隐式游标,从student表中读取姓名字段的值到变量xsname:setserveroutputon;DECLARExsnameStudent.姓名%Type;BEGINSELECT姓名INTOxsnameFROMStudentWHERE学号='200003008';dbms_output.put_line(xsname);END;游标

5、显式游标显式游标需要声明,在使用之前需要打开游标,使用完成后要关闭游标。使用显式游标的步骤包括:说明游标。打开游标。读取数据。关闭游标。游标控制语句(1)声明游标语句CURSOR:DECLARECURSOR<游标名>[(<参数列表>)]IS;【例】声明一个游标MyCur,读取指定类型的用户信息:DECLARECURSORMyCur(varTypeNUMBER)ISSELECTUserId,UserNameFROMUsersWHEREUserType=varType;游标控制语句(2)打开游标语

6、句OPEN:OPEN<游标名>[(<参数列表>)];【例】打开游标MyCur,读取类型为1的用户信息:OPENMyCur(1);游标控制语句(3)游标取值语句FETCH。游标取值语句FETCH的基本语法结构如下:FETCH<游标名>INTO<变量列表>;【例】在打开的游标MyCur的当前位置读取数据:FETCHMyCurINTOvarId,varName;(4)关闭游标语句CLOSE:CLOSE<游标名>;【例】关闭游标MyCur:CLOSEMyCur;游标控制语句【例】下面介绍一个完整的游标应用实例:/*打开显

7、示模式*/SETServerOutputON;DECLARE--开始声明部分varIdNUMBER;--声明变量,用来保存游标中的用户编号varNameVARCHAR2(50);--声明变量,用来保存游标中的用户名--定义游标,varType为参数,指定用户类型编号CURSORMyCur(varTypeNUMBER)ISSELECTUserId,UserNameFROMUsersWHEREUserType=varType;BEGIN--开始程序体OPENMyCur(1);--打开游标,参数为1,表示读取用户类型编

8、号为1的记录FETCHMyCurINTOvarId,varName;--读取当前游标位置的数据CLOSEMyCur;--关闭游标dbms_output.put_line('用户编号:'

9、

10、varId

11、

12、',用户名:'

13、

14、varName);--显示读取的数据END;--结束程序体游标属性(1)%ISOPEN属性【例】下面的代码演示当使用未打开的游标时,将会出现错误:/*打开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。