[Oracle]高效的PL/SQL程序设计(三)--Package的优点
使用Package的优点在于提供了必需的程序设计结构, 促进了模块化编程设计, 最重要的是Package断开了依赖链, 使得对某个数据库模式的改动不会导致整个模式的无效,从而避免了昂贵的重编译!
例如: 存在table t , procedure p1 p2, view v, function f, 它们之间引用关系如下:
- select name,type,referenced_name,referenced_type from user_dependencies
- where referenced_owner='SCOTT'
- order by name;
- F FUNCTION T TABLE
- P1 PROCEDURE V VIEW
- P2 PROCEDURE P1 PROCEDURE
- V VIEW T TABLE
当alter table t add y number时, 依赖于t的所有对象(包括传递依赖的对象, 即p1依赖于t, p2依赖于p1)就全部无效, 需要重新编译(如果代码很复杂, 就会有较大的消耗)
- select user_objects.object_name,user_objects.object_type,user_objects.status from user_objects
- F FUNCTION INVALID
- P1 PROCEDURE INVALID
- P2 PROCEDURE INVALID
- T TABLE VALID
- V VIEW INVALID
如果使用程序包之后table t , package pkg1,pkg2, view v, 可以发现PACKAGE BODY是依赖于PACKAGE, 而PKG2依赖于PKG1的PACKAGE, 而不是PACKAGE BODY
- select name,type,referenced_name,referenced_type from user_dependencies
- where referenced_owner='SCOTT'
- order by name;
- PKG1 PACKAGE BODY V VIEW
- PKG1 PACKAGE BODY PKG1 PACKAGE
- PKG2 PACKAGE BODY PKG2 PACKAGE
- PKG2 PACKAGE BODY PKG1 PACKAGE
- V VIEW T TABLE
当alter table t add y number时,会发现PK1的PACKAGE BODY会无效, 但是PKG2的PACKAGE BODY是有效的
- select user_objects.object_name,user_objects.object_type,user_objects.status from user_objects
- P1 PACKAGE BODY INVALID
- P2 PACKAGE BODY VALID
- P1 PACKAGE VALID
- P2 PACKAGE VALID
- T TABLE VALID
- V VIEW INVALID
(转载自:http://fhuan123.iteye.com/blog/659366)
[Oracle]高效的PL/SQL程序设计(三)--Package的优点相关推荐
- 每周一书《Oracle 12 c PL(SQL)程序设计终极指南》
本周为大家送出的书是<Oracle 12 c PL(SQL)程序设计终极指南>,此书由机械工业出版社出版, 孙风栋,王澜,郭晓惠 著. 内容简介: <Oracle 12c PL/SQ ...
- 09 高效的PL/SQL程序设计
程序包 Package 断开了依赖链 实验依赖关系: <1> 首先不使用包 -- 创建表 CREATE table t (x int); -- 创建视图 create view v as ...
- 《Oracle PL/SQL程序设计(第5版)》一一2.4 执行必要的PL/SQL任务
本节书摘来自异步社区出版社<Oracle PL/SQL程序设计(第5版)>一书中的第2章,第2.4节,作者:[美]Steven Feuerstein , Bill Pribyl,更多章节内 ...
- oracle pl/sql 程序设计 历史笔记整理
20131016 周三 oracle pl/sql 程序设计 第2章 创建并运行pl/sql代码 sqlplus yjkhecc/yjkhecc@10.85.23.92:1521/orcl 在java ...
- Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据
Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 Oracle PL/SQL 程序设计读书笔记 - 第7章 使用数据 7.1 程序数据的命名 PL/SQL要求在给数据结构命名的时候应 ...
- Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理
Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 Oracle PL/SQL 程序设计读书笔记 - 第14章 DML和事务管理 ACID原则:即一个事务具有原子性.一致性. ...
- oracle 12c sql图形化,Oracle 12c PL/SQL程序设计终极指南
Oracle 12c PL/SQL程序设计终极指南 作者:孙风栋;王澜;郭晓惠 出版日期:2015年06月 文件大小:11.73M 支持设备: ¥60.00在线试读 适用客户端: 言商书局 iPad/ ...
- 《Oracle PL/SQL程序设计(第5版)》一一2.5 编辑PL/SQL的环境
本节书摘来自异步社区出版社<Oracle PL/SQL程序设计(第5版)>一书中的第2章,第2.5节,作者:[美]Steven Feuerstein , Bill Pribyl,更多章节内 ...
- Oracle PL/SQL 第三章--运算符与表达式
Oracle PL/SQL 第三章--运算符与表达式 目录 Oracle PL/SQL 第三章--运算符与表达式 1.运算符分类 1.1.算术运算符 1.2.关系运算符 1.3.比较运算符 1.4.逻 ...
最新文章
- 内部类--毕向东Java基础教程学习笔记
- 如何检测当前的ABAP report是运行在inactive版本下
- linux部署redis详细步骤
- Algorithm:字典序最小问题
- 44特征02——相似对角化与方幂、代数重数与几何重数、可对角化的概念、相似对角化的条件、矩阵方幂的计算
- 【转】7个顶级心理预言
- 编译原理完整学习笔记(一):引论
- Javascript你必须要知道的面试题
- 微信小程序服务通知模板的实现
- div+css静态网页设计 web网页设计实例作业 ——中国水墨风的小学学校网站(6页) 专题网页设计作业模板 学校物静态HTML网页模板下载
- 阿里云cdn以及阿里云负载均衡配置方法
- bootstrap表格标题Caption位于表格下方的原因
- 2018年中高级前端面试题目小结
- 机器学习:非负矩阵分解(NMF)
- bmp格式图片缩放(位图缩放)
- R语言基础入门(全)
- Mysql 死锁和死锁的解决方案
- 求解矩阵方程耗时比较(直接求逆,Qr分解,LU分解)
- VB6.0中提示:该部件的许可证信息没有找到,在设计环境中,没有合适的许可证使用该功能”的解决办法
- Vue中常见的性能优化,项目优化/单页面性能优化,Vue中六大优化方案