第七章 PL SQL子程序设计 oracle9i青鸟.pptVIP

  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文档。上传文档
查看更多
/22 dd 第七章 目标 子程序的概念 函数和过程的关注点 定义 参数问题 RETURN问题 调用 存储过程的定义和使用 通过处理我们一般都想得到一个或者多个结果,如何通过存储过程带出一个或多个结果呢? 过程参数的三种模式: IN 用于接受调用程序的值 默认的参数模式 OUT 用于向调用程序返回值 IN OUT 用于接受调用程序的值,并向调用程序返回更新的值 执行存储过程可以使用EXEC命令或者在其它过程中调用。 存储函数的定义和使用 我们已经很多ORACLE内置的函数,那么能不能自己定义函数呢?函数是可以返回值的命名的 PL/SQL 子程序。 创建函数的语法: CREATE [OR REPLACE] FUNCTION function name [(param1,param2)] RETURN datatype IS|AS [local declarations] BEGIN Executable Statements; RETURN result; EXCEPTION Exception handlers; END; 类比java 语言中的方法定义 存储函数的定义和使用 存储函数的定义和使用 函数过程总结 包的定义和使用 Java中我们可以把功能相关的类放一个包中,达到方便维护信息隐蔽的目的。Oracle中有没有包呢? 包的定义和使用 程序包规范 CREATE [OR REPLACE] PACKAGE package_name IS|AS [Public item declarations] [Subprogram specification] END [package_name]; 包的定义和使用 包的定义和使用 演示: 写一个包 1。封装一个游标,表示姓名参数指定的学员的学号、课程名称、成绩。 2。封装一个过程,传入学员学号,返回学员的平均成绩和平均曾成绩的等级。 3。封装一个函数求三个值的最大值 调用包中的游标、过程、函数 包的注意: 1。规范中的游标必须是带RETURN的游标(强类型游标) 2。如果规范中有游标则需要在主体中先实现游标。 触发器的定义和使用 触发器是当特定事件出现时自动执行的存储过程 特定事件可以是执行更新的DML语句和DDL语句 触发器不能被显式调用 触发器的功能: 自动生成数据 自定义复杂的安全权限 提供审计和日志记录 启用复杂的业务逻辑 触发器的定义和使用 CREATE [OR REPLACE] TRIGGER trigger_name AFTER | BEFORE | INSTEAD OF [INSERT] [[OR] UPDATE [OF column_list]] [[OR] DELETE] ON table_or_view_name [REFERENCING {OLD [AS] old / NEW [AS] new}] [FOR EACH ROW] [WHEN (condition)] pl/sql_block; 触发器的定义和使用 触发器的定义和使用 触发器的定义和使用 对数据库数据管理,例如大量数据的倒入导出时候,一般需要禁止某些触发器,以增加效率。 禁止:ALTER TRIGGER aiu_itemfile DISABLE; 启用:ALTER TRIGGER aiu_itemfile ENABLE; 删除:DROP TRIGGER aiu_itemfile; 过程相关的视图 User_source 源代码 user_objects用户所有对象 以下查询返回用户定义的所有的过程: SELECT object_name , object_type FROM user_objects WHERE object_type=PROCEDURE; WHERE子句中 object_type=‘PROCEDURE’ 查询存储过程 object_type=‘FUNCTION’ 查询存储函数 object_type=‘PACKAGE’ 查询包规范 object_type=‘PACKAGE BODY‘ 查询包主体 object_type=‘TRIGGER‘

文档评论(0)

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

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

1亿VIP精品文档

相关文档