📅  最后修改于: 2023-12-03 15:18:35.914000             🧑  作者: Mango
PL/SQL 函数是一段可以重复使用的代码块,它接受输入参数、执行逻辑并返回一个值。它可以执行任何操作,从简单到复杂,包括数学运算、字符串操作、日期操作、数据查询等。
函数可以在 SQL 语句中直接使用,也可以在其他 PL/SQL 代码块中调用。
函数定义通常包含以下部分:
以下是一个简单的函数示例:
CREATE OR REPLACE FUNCTION calculate_salary (salary NUMBER, bonus NUMBER)
RETURN NUMBER
IS
total_salary NUMBER;
BEGIN
total_salary := salary + bonus;
RETURN total_salary;
END;
/
这个函数名为 calculate_salary
,接受两个参数 salary
和 bonus
,返回值为 NUMBER
类型。函数体中将输入参数相加并返回结果。
调用函数时需要指定函数名和参数列表,如果函数有返回值则可以用变量接收。
以下是一个调用函数的示例:
DECLARE
my_salary NUMBER;
BEGIN
my_salary := calculate_salary(5000, 1000);
DBMS_OUTPUT.PUT_LINE('My salary is ' || my_salary);
END;
/
这个代码块中调用了我们之前创建的函数 calculate_salary
,传入参数 5000 和 1000,并将返回值赋值给变量 my_salary
。最后输出变量的值。
PL/SQL 还提供了一些内置函数,可以方便地实现常见的操作,如字符串处理、日期处理等。以下是一些常用的内置函数:
下面是一个使用内置函数的示例:
DECLARE
my_str VARCHAR2(100) := 'Hello World';
my_sub_str VARCHAR2(30);
my_pos NUMBER;
BEGIN
my_sub_str := SUBSTR(my_str, 1, 5); -- 返回 'Hello'
my_pos := INSTR(my_str, 'World'); -- 返回 7
DBMS_OUTPUT.PUT_LINE('Sub string: ' || my_sub_str);
DBMS_OUTPUT.PUT_LINE('Position: ' || my_pos);
END;
/
这个程序块中使用了 SUBSTR
函数和 INSTR
函数,分别返回了字符串的子串和字符串中指定子串的位置。
PL/SQL 函数是代码重用的重要手段,它可以封装复杂的逻辑并让其可以在不同的地方重复利用。函数定义包含函数名、形参列表、返回类型和函数体,可以在 SQL 语句或其他 PL/SQL 代码中调用。此外,PL/SQL 还提供了一系列内置函数,可以方便地进行常见的操作。