PL/SQL学习笔记(五)

上一篇 / 下一篇  2007-06-05 22:45:00 / 个人分类:数据库使用

1. 包是一个封装的相关schema对象的集合。这些对象包括过程、函数、变量、常量、游标和异常。

2. 包具有下述优点:

使您能够更有效地将应用程序组织成模块。每个包都易于理解,包之间的接口简单、明了、定义完善

允许您高效的授予权限

在会话期间,包的公用变量和游标持续可用,因此所有的游标以及在这种环境中执行的过程可以共享它们。

使您能够重载过程和函数

通过一次将多个对象加载到内存中改善了性能,因此以后对包中相关子程序的调用不需要进行输入/输出操作。

通过使用包含存储过程和函数的库,提高了代码的重用性,消除了重复性编码工作

3. 创建包的第一步是创建其规范,规范将在包体中定义的模式对象声明为公用的。

创建包体:

CREATE [OR REPLACE] PACKAGE BODY package_name {IS|AS}

[package body object declaration]

BEGIN

programming statements

END [package_name];

4. 可以使用包含compile关键字的ALTER PACKAGE命令重新编译包。这种显式的重新编译消除了运行阶段的隐式重新编译,并防止了任何相关的运行阶段编译错误以及性能开销。通常在修改包后,显式地重新编译它。

ALTER PACKAGE employee_maint compile body

ALTER PACKAGE employee_maint compile package

第一句只重新编译包体,第二条重新编译整个包,包括包体和规范

5. 任何在包规范中声明的项目在包外都是可见的。这使得包外的PL/SQL代码能够引用包内的对象。在包规范中声明的对象被称为公有的;在包体中声明的对象只能在包中使用,因此包外PL/SQL块不能引用任何在包内私自声明的变量。

6. 对于独立的过程,变量、游标和常量只在过程调用期间是持续的,当过程终止后,它们便消失了;如果变量、常量或游标是在包规范或者包体中声明的,则在用户的会话期间,它们的值是持续的;当当前用户的会话终止或重新编译包时,它们的值便消失。

7. 包要么是有效的,要么是无效的。如果最后一次编译包后,其源代码和它引用对象没有被删除、替换或修改,则这个包被认为是有效的。如果最后一次编译包后,其源代码或它引用的对象被删除、替换或修改,则这个包被认为是无效的。


TAG: 数据库使用

 

评分:0

我来说两句

Open Toolbar