PL/SQL - 函数
-
简述
在本章中,我们将讨论 PL/SQL 中的函数。函数与过程相同,只是它返回一个值。因此,上一章的所有讨论对于函数也是正确的。 -
创建函数
一个独立的函数是使用 CREATE FUNCTION陈述。的简化语法CREATE OR REPLACE PROCEDURE 声明如下 -在哪里,-
function-name指定函数的名称。
-
[OR REPLACE] 选项允许修改现有函数。
-
可选参数列表包含参数的名称、模式和类型。IN 表示将从外部传递的值,OUT 表示将用于返回过程外部值的参数。
-
该函数必须包含一个 return 陈述。
-
该RETURN子句指定的数据类型,你打算从函数返回。
-
函数体包含可执行部分。
-
使用 AS 关键字代替 IS 关键字来创建独立函数。
例子
以下示例说明了如何创建和调用独立函数。此函数返回客户表中的客户总数。我们将使用我们在PL/SQL 变量章节中创建的 CUSTOMERS 表-当使用 SQL 提示符执行上述代码时,将产生以下结果 - -
-
调用函数
在创建函数时,您需要定义函数必须做什么。要使用函数,您必须调用该函数来执行定义的任务。当程序调用函数时,程序控制权转移到被调用函数。被调用的函数执行定义的任务,并在执行其返回语句时或 last end statement 到达时,它将程序控制返回到主程序。要调用函数,您只需传递所需参数和函数名称,如果函数返回值,则可以存储返回值。以下程序调用该函数totalCustomers 来自匿名块 -在 SQL 提示符下执行上述代码时,会产生以下结果 -例子
以下示例演示声明、定义和调用计算并返回两个值中最大值的简单 PL/SQL 函数。在 SQL 提示符下执行上述代码时,会产生以下结果 - -
PL/SQL 递归函数
我们已经看到一个程序或子程序可以调用另一个子程序。当子程序调用自身时,它被称为递归调用,这个过程被称为recursion.为了说明这个概念,让我们计算一个数的阶乘。数 n 的因子定义为 -以下程序通过递归调用自身来计算给定数字的阶乘 -在 SQL 提示符下执行上述代码时,会产生以下结果 -