PL/SQL - 包
-
简述
在本章中,我们将讨论 PL/SQL 中的包。包是将逻辑相关的 PL/SQL 类型、变量和子程序分组的模式对象。一个包将有两个强制性部分 -- 包规格
- 包体或定义
-
包规格
规范是包的接口。这只是DECLARES可以从包外部引用的类型、变量、常量、异常、游标和子程序。换句话说,它包含有关包内容的所有信息,但不包括子程序的代码。放置在规范中的所有对象都被称为 public对象。任何不在包规范中但在包体中编码的子程序称为private 目的。以下代码片段显示了具有单个过程的包规范。您可以在一个包中定义多个全局变量和多个过程或函数。在 SQL 提示符下执行上述代码时,会产生以下结果 - -
包体
包体具有包规范中声明的各种方法的代码和其他私有声明,这些代码对包外的代码是隐藏的。这 CREATE PACKAGE BODY语句用于创建包体。以下代码片段显示了cust_sal上面创建的包。我假设我们已经在我们的数据库中创建了 CUSTOMERS 表,如PL/SQL - 变量一章所述。在 SQL 提示符下执行上述代码时,会产生以下结果 - -
使用包元素
使用以下语法访问包元素(变量、过程或函数) -考虑一下,我们已经在我们的数据库模式中创建了上述包,以下程序使用 find_sal 的方法 cust_sal 包 -以上代码在SQL提示符下执行时,提示输入客户ID,输入ID时,显示对应的工资如下:例子
下面的程序提供了一个更完整的包。我们将使用存储在我们数据库中的 CUSTOMERS 表和以下记录 -包装规格
当在 SQL 提示符下执行上述代码时,它会创建上述包并显示以下结果 -创建包主体
上面的例子使用了 nested table. 我们将在下一章讨论嵌套表的概念。在 SQL 提示符下执行上述代码时,会产生以下结果 -使用包
以下程序使用包c_package 中声明和定义的方法。在 SQL 提示符下执行上述代码时,会产生以下结果 -