Oracle funtion
时间: 2023-09-19 13:05:53 浏览: 35
在 Oracle 数据库中,Function 是一种存储在数据库中的可重用程序单元,它可以接收输入参数并返回一个值。Function 可以用于查询、计算等多种用途,可以大大简化 SQL 语句的编写和维护,提高数据库的性能和可维护性。
以下是创建 Oracle Function 的基本语法:
```sql
CREATE [OR REPLACE] FUNCTION function_name (parameter1 [IN | OUT] datatype1 [, parameter2 [IN | OUT] datatype2]...)
RETURN return_datatype
IS
variable1 datatype1 [:= initial_value1];
variable2 datatype2 [:= initial_value2];
...
BEGIN
-- Function logic
RETURN return_value;
END;
```
其中,function_name 是要创建的 Function 名称,可以使用 OR REPLACE 关键字来替换已存在的 Function。parameter1、parameter2 等是函数的输入参数,可以指定参数的方向(IN 或 OUT),以及参数的数据类型。return_datatype 是函数返回值的数据类型,可以是基本数据类型或自定义类型。variable1、variable2 等是函数内部声明的变量,可以用于存储临时数据。initial_value1、initial_value2 等是变量的初始值。BEGIN 和 END 之间是 Function 的具体逻辑,RETURN 语句用于返回计算结果。
以下是一个简单的 Oracle Function 示例:
```sql
CREATE FUNCTION calculate_salary (p_salary NUMBER, p_bonus NUMBER)
RETURN NUMBER
IS
v_total_salary NUMBER;
BEGIN
v_total_salary := p_salary + p_bonus;
RETURN v_total_salary;
END;
```
该 Function 接收两个参数 p_salary 和 p_bonus,分别表示基本工资和津贴。在函数体中,使用变量 v_total_salary 存储计算结果,并使用 RETURN 语句返回结果。可以通过以下语句调用该 Function:
```sql
SELECT calculate_salary(1000, 200) FROM dual;
```
该语句将返回计算结果 1200。