中南大学数据库技术与管理课件8.5 Oracle常用对象.pptVIP

中南大学数据库技术与管理课件8.5 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文档。上传文档
查看更多
8.5 Oracle常用对象 本节根据Oracle的特点,介绍Oracle的一些对象,如存储过程、函数、触发器、包、序号生成器等。 8.5.1 存储过程 Oracle 中的存储过程由SQL语句和一些控制流语句组成并封装起来,经编译和优化后存储在数据库服务器中,使用时只需调用。使用存储过程有如下优点: (1) 存储过程功能全面、接口灵活。 (2) 可减少网络数据传输量。 (3) 可减少调用延迟,提高程序的执行效率。 (4) 可保证数据的安全性和完整性。 (5)可维护性好。 8.5.1 存储过程 1.存储过程的建立 CREATE [OR REPLACE] PROCEDURE procedure_name [(argument [IN|OUT|IN OUT] datatype [argument [IN|OUT|IN OUT] datatype]…)] IS|AS [declaration_statements] BEGIN Executable_statements [EXCEPTION exception-handler_statemebts] END [procedure_name]; 8.5.1 存储过程 2.存储过程的重新编译与删除 (1)存储过程的重新编译 虽然用CREATE OR REPLACE 命令可以重新编译存储过程,但还有一种方法不需要有源程序的拷贝就可重新编译存储过程,其命令格式为: ALTER PROCEDURE procedure_name COMPILE; 当存储过程引用的对象的某种方式发生改变时,这时Oracle不能确定其状态,存储过程被标记为无效,但使用该方法能很快解决问题。 (2) 存储过程的删除 如果一个创建的存储过程不再需要了,可使用下列命令删除: DROP PROCEDURE procedure_name 8.5.1 存储过程 3.存储过程的调用 (1)参数表示法 名表示法: 其格式如下: argument _name= argument _value 当使用名表示法时,参数的位置不需要与存储过程中参数的定义顺序一致。 位置表示法: 调用有参数的存储过程时,参数值的顺序与存储过程中参数定义的顺序应一致。 8.5.1 存储过程 (2)PL/SQL对象或匿名PL/SQL块调用 在PL/SQL对象或匿名PL/SQL块调用存储过程与调用Oracle内部函数方法一致,其格式为: procedure_name (argument _name= argument _value [,argument _name= argument _value[,…]]) 或 procedure_name(argument _value1[,argument _value2[,…]]) 8.5.2 触发器 触发器是一种特殊类型的存储过程,主要用于维护数据库中的表。它有以下作用: (1)安全性 (2)审计 (3)实现复杂的数据完整性规则 (4)实现复杂非标准的数据库的相关完整性规则 8.5.2 触发器 1.触发器的建立 CREATE [OR REPLACE] TRIGGER trigger_name BEFORE|AFTER|INSTEAD OF DELETE|INSERT|UPDATE [OF column[,column]…][OR DELETE|INSERT|UPDATE [OF column[,column]…]… ON table_name [[REFERENCING OLD [AS] old1|NEW [AS] new1] FOR EACH ROW|statement [WHEN condition] IS|AS [declaration_statements] BEGIN Executable_statements [EXCEPTION exception-handler_statemebts] END; 8.5.2 触发器 注意: (1)触发器中不能对与触发器定义所在表相关的表进行操作。 (2)触发器中不能使用COMMIT、ROLLBACK及与之相关的语句,如果触发器调用含有这类语句的存储过程也可能出现问题。 (3)在建立触发器时应避免循环触发,即建立在表A上的触发器对表B进行某种操作,而建立在表B的触发器对表A进行同种操作。 8.5.2 触发器 2.触发器的重新编译与删除 (1)触发器的重新

文档评论(0)

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

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

1亿VIP精品文档

相关文档