PL/SQL 过程2025 年 2 月 14 日 | 7 分钟阅读 PL/SQL 存储过程或简称为过程是执行一个或多个特定任务的 PL/SQL 块。它就像其他编程语言中的过程一样。 该过程包含一个标头和一个主体。
如何在过程中传递参数当您想要创建过程或函数时,必须定义参数。 这是一个可选的参数列表,您定义这些参数,既可以将信息传递到过程中,也可以将信息从过程中发送回调用程序。 定义参数时,还需指定其使用方式。 在过程中传递参数有三种方式:
在过程内部声明的参数称为形式参数。 从 PL/SQL 可执行部分传递到过程的参数称为实际参数。 实际参数及其对应的形式参数必须是兼容的数据类型。 实际参数也可以是表达式。 过程可能会也可能不会返回任何值。PL/SQL 创建过程创建过程的语法 创建过程的示例在本例中,我们将向 user 表中插入记录。 因此,您需要先创建 user 表。 创建表 现在编写过程代码,将记录插入 user 表中。 过程代码 输出 Procedure created. PL/SQL 程序调用过程让我们看看调用上面创建的过程的代码。 现在,查看 “USER” 表,您将看到插入了一条记录。
PL/SQL 删除过程要删除过程,我们使用 DROP PROCEDURE 语句,并且您必须具有 drop any procedure 系统权限。 删除过程的语法 在上面的语法中,drop 关键字用于删除过程,procedure_name 是过程的名称。 删除过程的示例过程有两种类型
让我们逐一解释。 本地过程本地过程是在 PL/SQL 块的声明部分中定义的。 该块可以是命名块或匿名块。 本地过程的作用域仅限于定义它们的父块。 无法从声明它们的块外部调用它。 以下语法用于声明本地过程 在上面的语法中, <prodname>: 它指示过程的名称,用于在程序中调用过程时标识该过程。 [本地声明]: 它是可选的,包含变量、常量、游标、其他过程和函数的声明,这些变量、常量、游标、其他过程和函数对于 <prodname> 来说是本地的。 它位于 IS|AS 和 BETWEEN 之间。 此处不使用关键字“DECLARE”。 应该记住,子程序声明应该是声明部分的最后一项。 如果在本地过程结束后但在过程的 BEGIN 之前声明变量,则会生成编译错误。 [可执行部分]: 可执行部分包含过程在被调用时执行的语句。 在可执行部分中必须至少有一个可执行语句,即使是 NULL 语句也可以。 这是强制性的,并且定义在 BEGIN 和 END 之间。 [异常部分]: 异常部分是过程的可选异常处理部分。 它定义在 EXCEPTION 和 END 之间。 在这里,我们定义在发生指定错误条件时要采取的操作。 以下是本地过程的各种示例。 示例 1:编写一个接受两个数字的本地过程,使用参数。 输出 Procedure created. 说明 在上面的 PL/SQL 程序中,创建了一个名为 PRODUCT 的过程。 它由这些参数 a、b、c 组成,这些参数具有 IN 和 OUT 模式。 因此,参数 a 和 b 只能用于引用,参数 c 只能用于赋值。 在执行时,会提示用户输入 x 和 y 变量的值,然后使用语句进行过程调用。 通过该语句调用过程定义并替换参数。 其中 a、b 和 c 是形式参数,而 first、second 和 result 是实际参数。 计算后,形式参数 c 将值返回给 result 变量,该变量显示计算出的乘积。 示例 2:编写一个本地过程来增加员工的工资, 该员工的员工编号由用户输入的金额给出。 输出 Procedure created. 说明 在上面的 PL/SQL 程序中,提示用户输入 ecode 和要增加工资的金额 inc_amount。 然后,它调用过程 salary_in,该过程根据用户输入更新值。 如果员工代码不存在,则会引发异常。 存储过程存储过程是一个 PL/SQL 代码块,该代码块已编译并存储在 Oracle 引擎的系统表之一中。 在存储过程之前,Oracle 引擎会解析和编译该过程。 如果在创建过程期间发生错误,则会创建一个无效的过程。 创建后,Oracle 引擎会显示错误。 要显示过程中发生的错误,请在 SQL 提示符下使用 SHOW_ERRORS 命令。 将其存储在数据库中后,可以由另一个应用程序或 PL/SQL 子程序调用。 要创建存储过程,您必须具有 CREATE PROCEDURE 权限。 以下语法用于创建存储过程。 创建存储过程的语法 在上面的语法中,当您尝试使用已存在的相同名称重新创建过程时,replace 子句是必需的。 它还会删除现有的过程,并将其替换为语句创建的新版本。 授予它的所有权限都将保留,即使新替换的版本执行完全不同的任务也是如此。 以下是存储过程的各种示例 示例 1:创建一个存储过程,该过程接受两个数字并显示两个数字的乘积? 输出 Procedure created. 说明 在上面的 PL/SQL 程序中,在执行时将创建一个名为 product 的存储过程。 如果发生任何错误,则可以使用在 SQL 提示符下编写的 SHOW ERRORS 命令查看该错误。 您可以使用 SQL*PLUS 环境中的 EXECUTE 命令执行存储过程。 示例 2:创建一个 PL/SQL 程序来调用下面创建的存储过程? 输出 Procedure created. 说明 在上面的 PL/SQL 程序中,存储过程的执行是从 PL/SQL 块中调用过程。 示例 3:创建一个存储过程,该过程显示每个部门中最资深的成员。 资历是根据雇用日期来判断的。 输出 Procedure created. 说明 在上面的 PL/SQL 程序中,执行时将创建一个存储过程。 关于 PL/SQL 过程的 MCQS1. 以下哪个语句可用于创建过程?
答案:d 说明 Create Procedure 用于在 PL/SQL 中创建子程序。 2. 以下哪个参数模式不用于 PL/SQL 中的过程?
答案:a 说明 以下 3 个参数用于在 PL/SQL 中传递模式。
3. 以下哪个术语用于调用独立的过程?
答案:b 说明 EXECUTE 语句用于在 PL/SQL 中调用独立的过程。 4. 以下哪个语句用于删除子程序?
答案:a 说明 DROP PROCEDURE procedure_name; 该语句用于在 PL/SQL 中删除过程。 5. 如果未指定参数的默认模式是什么?
答案:c 说明 IN 参数是参数传递的默认模式。 下一个主题PL/SQL 函数 |
我们请求您订阅我们的新闻通讯以获取最新更新。