PL/SQL 函数2025 年 2 月 14 日 | 6 分钟阅读 PL/SQL 函数与 PL/SQL 过程非常相似。过程和函数的主要区别在于,函数必须始终返回值,而过程可以返回也可以不返回值。除此之外,PL/SQL 过程的所有其他内容也适用于 PL/SQL 函数。 创建函数的语法 其中
函数必须包含一个 return 语句。
您所说的 Return 语句是什么意思?return 语句用于立即完成其执行并返回到调用程序。 在调用程序中执行会继续执行子程序调用之后的语句。 函数的执行部分中必须至少有一个 return 语句,才能从函数内部返回值,使用以下语句: Return <expression>; 在上面的语法中,其中表达式计算为函数本身的返回数据类型。 PL/SQL 函数示例让我们看一个简单的例子来创建一个函数。 现在编写另一个程序来调用该函数。 输出 Addition is: 33 Statement processed. 0.05 seconds 函数有两种类型
局部函数 局部函数是在 PL/SQL 块的声明中定义的函数。 不能由该封闭块之外定义的 PL/SQL 块调用该函数。 以下语法用于声明局部函数 示例 1:编写一个函数,用于显示 EMP 表中员工的工资,该员工的员工编号已给出。 输出 Function created. 另一个 PL/SQL 函数示例让我们举一个例子来演示声明、定义和调用一个简单的 PL/SQL 函数,该函数将计算并返回两个值的最大值。 输出 Maximum of (23,45): 45 Statement processed. 0.02 seconds 使用表的 PL/SQL 函数示例让我们创建一个客户表。此示例说明了创建和调用独立函数。此函数将返回客户表中 CUSTOMERS 的总数。 创建客户表并在其中保存记录。
存储函数 存储函数是已编译并存储在 Oracle 引擎系统表之一中的命名 PL/SQL 块。 以下语法用于创建存储函数 创建存储函数的示例 执行上述代码后,您将获得以下结果。 Function created. 调用 PL/SQL 函数 创建函数时,您必须给出该函数要做什么的定义。 要使用函数,您将需要调用该函数来执行定义的任务。 一旦调用了该函数,程序控制权就会转移到被调用的函数。 在成功完成定义的任务后,调用函数会将程序控制权返回给主程序。 要调用函数,您必须将所需的参数与函数名称一起传递,如果函数返回一个值,那么您可以存储返回的值。 以下程序从匿名块调用函数 totalCustomers 在 SQL 提示符下执行上述代码后,您将获得以下结果。 Total no. of Customers: 4 PL/SQL procedure successfully completed. PL/SQL 递归函数您已经知道一个程序或子程序可以调用另一个子程序。 当一个子程序调用自身时,称为递归调用,该过程称为递归。 计算数字的阶乘的示例让我们举一个例子来计算一个数字的阶乘。 此示例通过递归调用自身来计算给定数字的阶乘。 在 SQL 提示符下执行上述代码后,它会产生以下结果。 Factorial 6 is 720 PL/SQL procedure successfully completed. PL/SQL 删除函数删除您创建的函数的语法 如果要从数据库中删除您创建的函数,则应使用以下语法。 在上面的语法中,drop 是一个命令,function_name 是您要删除的函数的名称。 示例 Drop function fact; 在上面的示例中,drop 命令用于删除名为 fact 的函数; 创建函数的规则创建函数时应牢记以下几点
PL/SQL 函数的优点函数对程序员来说非常有用。 它们促进了可重用性和可维护性。 声明后,它们可以在许多应用程序中使用,可以使用多次。 如果需求发生变化,那么我们只需要修改函数。 因此,它促进了可维护性。 下面列出了 PL/SQL 中函数的各种优点。
关于 PL/SQL 函数的 MCQS1. 以下哪一项语句可用于在 PL/SQL 中创建函数?
答案:a 说明 创建函数用于在 PL/SQL 中创建子程序。 2. 以下哪种参数模式用于 PL/SQL 中的函数?
答案:b 说明 在 PL/SQL 函数中,使用 IN 参数模式。 3. 以下哪个语句用于删除函数?
答案:c 说明 DROP Function fun_name; 此语句用于在 PL/SQL 中删除函数。 4. PL/SQL 中过程和函数的主要区别是什么?
答案:a 说明 过程和函数的主要区别在于,过程不返回值,而函数返回值。 5. PL/SQL 中函数定义中的“REPLACE”关键字用于修改现有函数。
答案:a 说明 replace 关键字用于修改现有函数。 下一个主题PL/SQL 游标 |
我们请求您订阅我们的新闻通讯以获取最新更新。