Oracle - 为什么我应该使用包而不是独立的过程或函数

2023-11-02数据库问题
2

本文介绍了Oracle - 为什么我应该使用包而不是独立的过程或函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我搜索了谷歌,但没有找到任何关于为什么我应该使用包的令人满意的答案.

I searched google but did not find any satisfying answer as to why I should use packages.

我知道一个包是一组过程、函数和不同的变量.据我了解,它有点对应于 OOP 中的对象.但是当然,没有什么比实例化一个包的不同实例更好的了,这样每个实例将具有不同的属性值并表现出不同的行为.

I know that a package is a bundle of procedures, functions and different variables. As I understand it sort of corresponds to object in OOP. But of course there's nothing like instantiating different instances of a package so that each instance would have different property values and behave differently.

那么当我可以创建一个独立的过程并独立调用它时,使用包有什么好处?

Then what is the advantage of using packages when I can just create a standalone procedure and call it independently?

推荐答案

软件包具有以下优点:

  1. 内聚:与特定子系统相关的所有程序和功能都在一个程序单元中.这只是一个很好的设计实践,但它也更容易管理,例如在源代码控制中.
  2. 常量、子类型和其他有用的东西:PL/SQL 不仅仅是存储过程.我们可以在包规范中定义的任何内容都可以与其他程序共享,例如用户定义的异常.
  3. 重载:定义具有相同名称但不同签名的过程或函数的能力.
  4. 安全性:在包体中定义私有过程,只能由包使用,因为它们没有在规范中公开.
  5. 共享公共代码:私有程序的另一个好处.
  6. 我们只需要对一个包而不是几个过程授予 EXECUTE.

这篇关于Oracle - 为什么我应该使用包而不是独立的过程或函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同
Why Mysql#39;s Group By and Oracle#39;s Group by behaviours are different(为什么 Mysql 的 Group By 和 Oracle 的 Group by 行为不同)...
2024-04-16 数据库问题
13

定义外键有什么好处
what are the advantages of defining a foreign key(定义外键有什么好处)...
2024-04-16 数据库问题
7

音乐库 MySQL 数据库
Music library MySQL database(音乐库 MySQL 数据库)...
2024-04-16 数据库问题
6

理解mysql解释
understanding mysql explain(理解mysql解释)...
2024-04-16 数据库问题
8

唯一约束与唯一索引
Unique Constraint vs Unique Index(唯一约束与唯一索引)...
2024-04-16 数据库问题
8

MySQL:bigint 与 int
MySQL: bigint Vs int(MySQL:bigint 与 int)...
2024-04-16 数据库问题
18