`

[Oracle]高效的PL/SQL程序设计(三)--Package的优点

 
阅读更多
使用Package的优点在于提供了必需的程序设计结构, 促进了模块化编程设计, 最重要的是Package断开了依赖链, 使得对某个数据库模式的改动不会导致整个模式的无效,从而避免了昂贵的重编译!

例如: 存在table t , procedure p1 p2, view v, function f, 它们之间引用关系如下:

selectname,type,referenced_name,referenced_typefromuser_dependencies
wherereferenced_owner='SCOTT'
orderbyname;
F FUNCTION T TABLE
P1PROCEDURE V VIEW
P2 PROCEDURE P1PROCEDURE
V VIEWTTABLE

当alter table t add y number时, 依赖于t的所有对象(包括传递依赖的对象, 即p1依赖于t, p2依赖于p1)就全部无效, 需要重新编译(如果代码很复杂, 就会有较大的消耗)

selectuser_objects.object_name,user_objects.object_type,user_objects.statusfromuser_objects
F FUNCTIONINVALID
P1PROCEDUREINVALID
P2PROCEDUREINVALID
T TABLE VALID
V VIEWINVALID

如果使用程序包之后table t , package pkg1,pkg2, view v, 可以发现PACKAGE BODY是依赖于PACKAGE, 而PKG2依赖于PKG1的PACKAGE, 而不是PACKAGE BODY

selectname,type,referenced_name,referenced_typefromuser_dependencies
wherereferenced_owner='SCOTT'
orderbyname;
PKG1PACKAGE BODY V VIEW
PKG1PACKAGE BODYPKG1PACKAGE
PKG2PACKAGE BODYPKG2PACKAGE
PKG2PACKAGE BODYPKG1PACKAGE
V VIEW T TABLE

当alter table t add y number时,会发现PK1的PACKAGE BODY会无效, 但是PKG2的PACKAGE BODY是有效的

selectuser_objects.object_name,user_objects.object_type,user_objects.statusfromuser_objects
P1PACKAGE BODYINVALID
P2PACKAGE BODY VALID
P1PACKAGEVALID
P2PACKAGE VALID
T TABLE VALID
V VIEW INVALID

分享到:
评论

相关推荐

    ORACLE 数据库开发_PLSQL基础.doc

    ---- 第二章 PL/SQL程序结构 ---- ---- 第三章 变量与数据类型 ---- ---- 第四章 PL/SQL控制语句 ---- ---- 第五章 PL/SQL游标 ---- ---- 第六章 HANDLE EXCEPTION ---- ---- 第七章 SUB PROGRAM ---- ---- 第八章...

    英文版Oracle PL/SQL Packages and Types Reference

    英文版Oracle PL/SQL Packages and Types Reference,开发备查参考,需要英文阅读能力。

    Oracle PL/SQL语言初级教程

    Oracle PL/SQL语言初级教程 1 目录 1 1.PL/SQL语言基础 3 过程 5 包(package) 6 变量和常量 6 执行部分 10 控制结构 12 小结 17 2.PL/SQL的复合数据类型 17 使用记录 19 PL/SQL集合 23 嵌套表 24 使用集合 25 集合的...

    Oracle 11gR2 pl/sql package and type 参考手册

    Oracle 11gR2 pl/sql package and type 参考手册

    advanced oracle pl-sql

    Chapter 4, Getting Started with PL/Vision gets you started with PL/Vision, a collection of PL/SQL packages and supporting SQL*Plus scripts that can radically change the way you develop applications ...

    Oracle PL/SQL guid

    Oracle PL/SQL Best Practices is a concise, easy-to-use summary of best practices in the program development process. It covers coding style, writing SQL in PL/SQL, data structures, control ...

    PL/SQL Developer 6.0

    2.5 UNINSTALLING PL/SQLDEVELOPER 3. WRITING PROGRAMS 3.1 CREATING A PROGRAM 3.2 SAVING A PROGRAM 3.3 MODIFYING A PROGRAM 3.4 COMPILING A PROGRAM 4. TESTING PROGRAMS 4.1 CREATING A TEST SCRIPT 4.2 ...

    PL/SQL DEVELOPER 详细教程

    PL/SQL DEVELOPER 用户指南 PL/SQL Developer是一个为Oracle数据库开发存储程序单元的集成开发环境(IDE),使用PL/SQL Developer你能方便地创建你的客房、服务器应用程序的服务器部分。

    批量导出pl/sql程序包内容代码

    oracle中 在编辑器中 oracle sql developer中 批量导出程序包代码内容

    Oracle 入门文档2

    Oracle 入门文档 Oracle笔记 一、oracle的安装、sqlplus的使用 Oracle笔记 二、常用dba命令行 Oracle笔记 三、function 、...Oracle笔记 十三、PL/SQL面向对象之package Oracle笔记 十四、查询XML操作、操作系统文件

    Oracle 入门文档

    Oracle 入门文档 Oracle笔记 一、oracle的安装、sqlplus的使用 Oracle笔记 二、常用dba命令行 Oracle笔记 三、function 、...Oracle笔记 十三、PL/SQL面向对象之package Oracle笔记 十四、查询XML操作、操作系统文件

    Oracle P/L SQL实现文件压缩、解压功能

    Oracle P/L SQL实现文件压缩、解压功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 Create or Replace Package UTL_ZIP AUTHID CURRENT_USER as Type File_List is Table of Clob; -...

    Oracle_function_package_procedure.rar_oracle_pl sql function_pl/

    pl/sql中oracle的函数,过程,包,事务等介绍

    Oracle P/L SQL实现FTP上传、下载功能

    Oracle P/L SQL实现FTP上传、下载功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --Oracle上的FTP功能 Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection ...

    不安装oracle客户端启用PL-SQL

    Oracle为我们提供了轻便的工具Oracle Instantclient package,也有人称他为“Oracle即时客户端”。使用此工具,我们就可以在不安装Oracle客户端软件的情况下访问存在于其他计算机上的数据库了

    Oracle包应用详解.doc

    (1)包是一种数据库对象,将逻辑上相关的PL/SQL类型、对象和子程序组合成一个更大的单位,是一组相关过程、函数、变量、常量和游标等PL/SQL程序设计元素的组合,它具有面向对象程序设计语言的特点,是对这些PL/SQL ...

    Oracle10g_PL_SQL_编程讲义

    主要内容:PL/SQL 语言的基本特征、PL/SQL程序的结构、PL/SQL语言的控制结构、游标(cursor)编程、错误处理、存储过程和函数、创建包(Package)、触发器(Trigger)。

    Oracle+10G+-+Plsql+User's+Guide

    ■ New Features in PL/SQL for Oracle Database 10g ■ New Features in PL/SQL for Oracle9i New Features in PL/SQL for Oracle Database 10g Release 1 (10.1) Improved Performance PL/SQL performance is ...

    11g_plsql_user_guide_and_reference.pdf

    The PL/SQL features for 11g Release 1 (11.1) are: ■ Enhancements to Regular Expression Built-In SQL Functions ■ SIMPLE_INTEGER, SIMPLE_FLOAT, and SIMPLE_DOUBLE Data Types ■ CONTINUE Statement ■ ...

Global site tag (gtag.js) - Google Analytics