第14篇 包.pptVIP

  • 2
  • 0
  • 约2.13千字
  • 约 13页
  • 2018-07-08 发布于湖北
  • 举报
理解PL/SQL包 什么是包 包的组成部分 包的优点 定义包规范 定义包体 包调用示意图 查看包的源代码 包的进阶技术 管理数据库中的包 1-* 北京源智天下科技有限公司 联系方式: 联系方式: 北京源智天下科技有限公司 PL/SQL从入门到精通视频 第十四讲:包 课程安排 理解PL/SQL包 包的进阶技术 使用系统包 什么是包 包的优点 定义包规范 定义包体 调用包组件 编译和调试包 查看包的源代码 一个PL/SQL包由2部分组成: 包规范:主要是包的一些定义信息,不包含具体的代码实现部分,也可以说包规范是PL/SQL程序和其他应用程序的接口部分,包含类型、记录、变量、常量、异常定义、游标和子程序的声明。 包体:包体是对包规范中声明的子程序的实现部分,包体的内容对于外部应用程序来说是不可见的,包体就像一个黑匣子一样,是对包规范的实现。 注意:一个包可以没有包体部分,而且可以调试、改进和替换包体而无须改变包的规范部分。 (1)模块化设计:通过将逻辑相关的类型、常量、变量、异常和子程序放到一个命名的PL/SQL模块中,使得每一个包都容易理解,有助于模块化程序的开发。例如通过将所有员工操作相关的变量、常量、集合、记录和子程序都封装到emp_pkg包中,当所有需要调用员工相关的行为时,都可以使用emp_pkg来进行操作,使得包与包之间的接口简单,清晰。 (2)规范化的程序设计:在基于包的应用程序设计时,可以首先规划并在包规范中定义包需要提供的功能,即便当前并没有实现包体,也可以编译包规范部分,然后引用该包的存储子程序会被编译。也就是说,使用了包技术之后,可以将规划与实现完全隔开,等包规范确定了后再实现包体。使得整个实现更加规范化。 (3)实现信息的隐藏:包规范中定义的常量、变量和异常以及子程序等是公有的,可以被外部访问,可以规划将哪些内容公开给外部进行调用,如果不想对外公开,可以在包体中定义这些内容,这样就可以实现信息的隐藏。如果实现内容发生改变,受到影响的只有包本身,而不会影响到使用包的应用程序。 (4)提供全局共享的附加功能:这个功能是指在包中公开的变量或游标在一个会话期会一直存在,并且可以被当前环境下的所有子程序共享,因此可以将包中定义的变量当作全局变量来使用,并且可以跨事务来维护数据而不用把它保存在数据库中。 (5)提供了良好的性能体验:由于在首次打开包子程序时,整个包都会被加载到内存中,因而后续的调用只需要从内存中读取而不需要再次读取磁盘,提供了较好的性能。 CREATE [OR REPLACE] PACKAGE package_name [AUTHID {CURRENT_USER|DEFINER}] {IS |AS} type_definition | procedure_specification | function_specification | variable_specification | exception_declaration | cursor_declaration | pragma_declaration END [package_name]; CREATE [OR REPLACE] PACKAGE BODY package_name {IS |AS} type_definition | procedure_specification | function_specification | variable_specification | exception_declaration | cursor_declaration | pragma_declaration | cursor_body BEGIN sequence_of_statements END [package_name]; SELECT object_type 对象类型, object_name 对象名称, status 状态 FROM user_objects WHERE object_type IN (PACKAGE, PACKAGE BODY) ORDER BY object_type, status, object_name; SELECT line, text FROM user_source WHERE NAME = EMP_ACTION_PKG AND TYPE = PACKAGE ORDER BY line; 包重载 包初始化 包的纯度级别 包权限设置 在包中使用游标 查看和删除包 检查包的依赖性

文档评论(0)

1亿VIP精品文档

相关文档