Oracle数据库第4章 Oracle数据库后端编程.pptVIP

Oracle数据库第4章 Oracle数据库后端编程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.4.3 游标使用 当需要对当前行进行更新或删除操作时,PL/SQL为游标的UPDATE和DELETE语句提供了WHERE CURRENT OF语句。这个语句可以很容易地修改最后取出来的数据行。 UPDATE 表名 SET set 语句 WHERE CURRENT OF 游标名; 要从数据库删除最后一次取出来的记录,语法如下所示: 要更新最后取出来的记录的列,语法如下所示: DELETE FROM 表名 WHERE CURRENT OF 游标名; 4.5 PL/SQL存储过程 存储过程是数据库对象之一,它是数据服务器内的一段使用PL/SQL语言编写的程序单元,具有EXECUTE权限的用户可以显式地调用过程。 存储过程保存在数据库服务器上,被显式地调用完成过程定义的计算任务,可以接受各种Oracle定义的参数,用户可以在SQL Developer或者任何可以执行SQL语句的接口处执行PL/SQL过程,一旦过程被创建则在数据字典中记录该数据库对象信息,其数据库对象类型为PROCEDURE。 存储过程具有如下优点: 加快程序的执行速度 减少网络的数据流量 提供了一种安全机制 允许程序模块化设计 提高编程的灵活性 4.5.1 存储过程定义 一个存储过程由三部分组成,即声明区、子程序区和异常处理区,如图所示: 4.5.1 存储过程定义 其中,可选关键字OR REPLACE表示如果存储过程已经存在,则用新的存储过程覆盖,通常用于存储过程的重建。参数部分用于定义多个参数(如果没有参数,就可以省略),参数有三种形式:IN、OUT和IN OUT,如果没有指明参数的形式,则默认为IN。 声明区位于PROCEDURE和BEGIN之间,在声明区用来定义变量,例如: CREATE OR REPLACE PROCEDURE PROTEST IS --声明变量 xxx NUMBER; yyy VARCHAR2(20):=oracle; --声明REF游标 TYPE empcursor IS REF CURSOR; --异常对象 read_disk_refused EXCEPTION; --内嵌函数或其他存储过程 FUNCTION foo RETURN Boolean IS …… 4.5.1 存储过程定义 子程序区,即BEGIN…END之间的部分,这部分包括PL/SQL代码逻辑,其中的代码逻辑对于声明区是可见的,这部分是存储过程执行其功能的主体部分,并且在过程的定义中,子程序部分是不可缺少的,要求在BEGIN…END之间至少有一条PL/SQL语句,可以是NULL,例如: CREATE OR REPLACE PROCEDURE PROTEST IS BEGIN --此处是PL/SQL代码逻辑 logical statement; END; 异常处理区处理在子程序执行中发生的异常,例如: …… IF age150 THEN RAISE dateexp; EXCEPTION WHEN dateexp THEN handling dateexp; WHEN OTHERS THEN handling other exps; END; 创建存储过程可以使用SQL*Plus工具,也可以使用SQL Developer工具,也可以在Windows的记事本中编辑,当使用记事本编辑存储过程时,需要将它保存为一个.SQL脚本文件,最后使用SQL*Plus或SQL Developer执行该脚本文件。需要注意的是,用户应当具有创建存储过程的权限 4.5.2 存储过程管理 在Oracle数据库中,存储过程对象的定义信息是存放在系统数据字典的系统表中。开发人员可以通过对系统表USER_OBJECTS进行查询访问,可获取所需存储过程的基本信息,通过对系统表USER_SOURCE进行查询访问,可获得所需存储过程的代码信息。 1. 存储过程查看 假定用户需要从USER_OBJECTS表中获取Insert_Student 存储过程的名字(OBJECT_NAME)、对象类型(OBJECT_TYPE)、存储过程创建时间(CREATED)、存储过程状态(STATUS)信息,其SELECT语句如下所示: SELECT Object_Name, Object_Type, Created, Status FROM USER_OBJECTS WHERE Object_Type = PROCEDURE AND Object_Name = DELETE_STUDENT; 4.5.2 存储过程管理 假定用户需要从USER_SOURCE表中获取I

文档评论(0)

132****9295 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档