我搜索了谷歌,但没有找到任何令人满意的答案来说明为什么我应该使用包。
我知道包是过程、函数和不同变量的捆绑。据我了解,它有点对应于 OOP 中的对象。当然,没有什么比实例化包的不同实例更好的了,这样每个实例就有不同的属性值和不同的行为。
那么当我可以创建一个独立的过程并独立调用它时,使用包有什么好处?
最佳答案
软件包具有以下优点:
- 内聚性:与特定子系统相关的所有过程和功能都在一个程序单元中。这只是良好的设计实践,但也更容易管理,例如在源代码控制中。
- 常量、子类型和其他有用的东西:PL/SQL 除了存储过程之外还有更多内容。我们可以在包规范中定义的任何内容都可以与其他程序共享,例如用户定义的异常。
- 重载:能够定义具有相同名称但不同签名的过程或函数。
- 安全性:在包主体中定义私有(private)过程,该过程只能由包使用,因为它们未在规范中公开。
- 共享通用代码:私有(private)过程的另一个好处。
- 我们只需要对一个包而不是多个过程授予 EXECUTE 权限。
关于Oracle - 为什么我应该使用包而不是独立的过程或函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12934984/