关于程序包
程序包是一个 PL/SQL 单元,它由相关子程序及其使用的已声明游标和变量组成。通常,将子程序放入程序包中。
将子程序放入程序包中,原因如下:
-
通过程序包可对客户机程序隐藏实施细节。
对客户机程序隐藏实施细节是一种被广泛接受的最佳实践。很多 Oracle 客户都严格采用此做法,从而让客户机程序只能通过调用 PL/SQL 子程序访问数据库。一些客户允许客户机程序使用 SELECT 语句从数据库表中检索信息,但对于所有执行数据库更改的业务函数,则要求它们调用 PL/SQL 子程序。
-
从程序包外部调用程序包子程序时,必须使用程序包名称进行限定,这样可以确保在从程序包外部调用时,其名称始终有效。
例如,假设您在 Oracle Database 11g 之前开发了一个名为 CONTINUE 的方案级过程。Oracle Database 11g 引入了 CONTINUE 语句。因此,如果您已将代码移植到 Oracle Database 11g,则将无法对其进行编译。但是,如果您在程序包中开发了此过程,您的代码将以 package_name 形式引用该过程。继续,这样代码仍可进行编译。
注:Oracle Database 提供了许多 PL/SQL 程序包来扩展数据库功能并提供对 SQL 功能的 PL/SQL 访问权限。您可以使用所提供的程序包创建应用程序,或为您创建自己的存储过程提供思路。有关这些程序包的信息,请参阅 Oracle Database PL/SQL Packages and Types Reference。
另请参见:
-
Oracle Database Concepts,了解有关程序包的一般信息
-
Oracle Database PL/SQL Language Reference(了解有关使用程序包的更多理由)
-
Oracle Database PL/SQL Language Reference(了解有关 PL/SQL 程序包的完整信息)
-
Oracle Database PL/SQL Packages and Types Reference(了解有关 Oracle 提供的 PL/SQL 程序包的完整信息)