本章讨论了在POLARDB for Oracle中包的概念。包是函数,存储过程,变量,游标,用户定义的记录类型和记录的集合,这些对象可以通过一个通用的限定符-包的标识符来引用。包的特点如下:
  • 包提供一种简便的方式把执行相关联目的的函数和存储过程组织在一起。用户必须对整个包上具有相应的权限才能执行包中函数和存储过程。我们必须以一个通用的名称来引用包中所有的程序。
  • 我们可以把包中的某些函数,存储过程,变量或者类型等声明为公有。而如果其它程序要引用包中的公有实体,则必须在包上有EXECUTE权限。对于公有函数和存储过程来说,只有它们的签名是可见的-包括程序名称,参数(如果有的话),和函数的返回类型。对于其他程序来说,这些函数和存储过程的代码是无法访问的,因此那些使用包的程序只能依赖于在这些公有实体签名中的有效信息,而不是过程逻辑的本身。
  • 我们可以把在包中其它的函数,存储过程,变量,类型等声明为私有。同一个包中函数和存储过程可以引用和使用这些私有实体,但是其它外部应用不能使用这些私有实体。
  • 在包中的函数和存储过程名称可以重载。我们可以定义相同名称的函数和存储过程,但是它们的签名不能一样。我们可以使用这个特点创建具有相同名称,执行相同任务,但是具有不同类型输入参数的程序。