PL/SQL 包2025年4月6日 | 阅读6分钟 在本文中,我们将详细讨论 PL/SQL 包,以及各种功能、方法和示例。 什么是 Pl/SQL 包?包是一种结构,允许您将过程、函数、变量、常量、游标和异常按逻辑分组到一个容器中。 PL/SQL 包包含两个组件
创建包规范的语法如下: 在上面的语法中,CREATE PACKAGE 语句用于定义新的包规范,如果要重建现有包,则使用 REPLACE 关键字,<package_name> 是包的名称,包体对象声明是在其中列出将在包中创建的对象。 必须指定包规范。 包规范中声明的变量可以根据需要初始化为常量值或公式,否则默认初始化为 NULL。 包体包含实现包规范中定义的对象所需的所有代码。 它包含变量的声明和所有包模块的定义。 包体还可以包含一个可执行部分,称为初始化部分,因为它只运行一次以初始化包。 创建包体的语法如下: 在包编写、调试、编译并存储在数据库中之后,应用程序可以调用其子程序、使用其游标、引发其异常并引用其类型。 开发包需要遵循以下步骤。
示例 1创建一个包,其中包含一个函数,用于返回给定员工代码的工资,一个过程,用于描述给定部门编号的员工,以及另一个过程,用于实现给定员工的工资? 要检查编写的代码是否正确,我们将运行上面的 Pl/SQL 代码块。 如果代码正确,它将显示消息“Package Created”,否则将显示错误,您可以使用 SHOW ERRORS 命令查看这些错误。 以下代码用于创建包体。 输出 @ Emp_Pack Package Body Created 说明 要检查包体的代码是否正确,我们将运行上面的 PL/SQL 代码块。 成功执行该程序后,包将显示消息“Package Created”。 如果发生任何错误,它将提示一条警告消息。 要检查错误,我们编写 SHOW ERRORS; 它将显示错误。 这里 Sal_Check 是一个公共函数,Emp_Info 和 Sal_Inc 是公共过程。 除了使用包规范声明并且可以在包体中定义的公共函数/过程之外,我们还可以拥有私有函数/过程。 私有结构在包体中声明和定义。 下图显示了上述 PL/SQL 代码的工作原理。 ![]() 引用 PL/SQL 包内容创建包规范及其包体后,可以使用点 (.) 表示法从该包规范外部引用在包规范中定义的对象,格式如下。 引用 PL/SQL 包内容的语法如下: 在上面的语法中,<package_name> 是声明的包的名称,<object_name> 可能包括过程、函数、变量、常量、游标和异常等。 引用 PL/SQL 包内容的示例是 示例 1说明 执行上述语句后,它将显示与 empno=7499 对应的工资。 类似地,要引用过程 Emp_Info,我们编写。 示例 2说明 执行上述语句后,它将显示属于 deptno=20 的员工的员工信息。 您还可以使用 PL/SQL 代码块来执行包中声明的过程、函数或其他对象。 说明 执行上面的代码后,它将提示您输入员工的姓名,然后返回其工资。 您可以在不同的模式中调用包的过程。 为此,您必须在包名称之前限定模式名称,并在两者之间放置一个点。 无包体的包没有包体的包称为无包体的包。 此类包的包规范仅声明类型、常量、变量、异常和调用规范。 在此类包规范中声明的变量在用户会话期间存在。 重新编译包带有 COMPILE 关键字的 ALTER Package 命令用于重新编译包,每当对包进行任何修改时。 重新编译包,在不更改包定义或其任何对象定义的情况下,重新编译包中定义的所有对象。 创建重新编译包体的语法如下: 现在假设我们对包体中定义的过程之一进行修改,那么您可以使用以下语句重新编译包体。 创建重新编译包体的示例如下: 包的优点以下是 PL/SQL 中包的各种优点列表
关于 PL/SQL 包的 MCQ1. 在以下语法中,哪个用于创建 PL/SQL 包?
答案:a 说明: 以下语法用于创建 PL/SQL 包。 2. 以下哪个语句用于创建 PL/SQL 包体?
答案:c 说明: 以下语法用于创建 PL/SQL 包。 3. 以下哪个语句不是 PL/SQL 包的优点?
答案:a 说明: 代码调试不是 PL/SQL 包的优点。 4. PL/SQL 包包含多少个组件?
答案:b 说明:PL/SQL 包包含两个组件
下一个主题将参数传递给 PL/SQL 中的游标 |
我们请求您订阅我们的新闻通讯以获取最新更新。