包是命名的函数、过程、变量、游标、用户定义的记录类型以及使用通用限定符(即包标识符)引用记录的集合。

包有以下特点:

  • 包提供了一种便捷方式来组织实现相关目的的函数和存储过程。使用包函数和存储过程的权限依赖于授予整个包的一个特权。所有包程序必须使用公共名称引用。
  • 包中的特定函数、过程、变量、类型等可以声明为公共。公共实体可见,并可由其他提供了包上EXECUTE特权的程序引用。对于公共函数和存储过程,只有其特征可见,即程序名称、参数(如果有)以及函数的返回类型。这些函数和存储过程的SPL代码不能由其他人访问,因此使用包的应用程序仅依赖于特征(而不是存储过程逻辑本身)中可用的信息。
  • 包中的其他函数、存储过程、变量、类型等实体可声明为私有。私有实体可由包内的函数和存储过程引用和使用,但不能由外部应用程序引用和使用。私有实体仅供包内的程序使用。
  • 函数和存储过程名称可在包内重载。一个或多个函数/存储过程可使用相同名称但使用不同特征进行定义。这样能够创建名称相同的多个程序,这些程序执行相同的作业,但针对不同类型的输入执行。