SQL自定义函数

--.自定义函数
--语法:

CREATE OR REPLACE FUNCTION FUN_函数名(参数1 数据类型,参数2 数据类型……)
RETURN + 返回的数据类型
IS|AS
BEGIN
--逻辑体
--里面必须要有一个RETURN子句
END;

--对比存储过程

CREATE OR REPLACE PROCEDURE SP_存储过程名(参数) IS/AS
BEGIN
--逻辑体
END;

--注意:
--1.自定义函数的命名:以F_或者FUN_开头。
--2.自定义函数的参数和存储过程的参数一样,在创建时都不能写大小,只能写数据类型。
--3.自定义函数也有传入参数,传出参数,传入传出参数。

---【例】创建自定义函数,实现两个值的加和

CREATE OR REPLACE FUNCTION FUN_SUM(P_A NUMBER,P_B NUMBER)
RETURN NUMBER 
AS
V_SUM NUMBER; --声明一个变量,用来赋值。
BEGIN
V_SUM := P_A+P_B;
RETURN V_SUM;
END;
--调用自定义函数
--自定义函数需要在查询中调用
SELECT FUN_SUM(3,5) FROM DUAL;

----【例】编写自定义函数,实现计算员工的年收入,通过输入员工编号,进行计算

CREATE OR REPLACE FUNCTION FUN_INCOME(P_EMPNO NUMBER) 
RETURN NUMBER
AS
V_INCOME NUMBER;
BEGIN
SELECT (SAL+NVL(COMM,0))*12 
INTO V_INCOME
FROM EMP
WHERE EMPNO = P_EMPNO;
RETURN V_INCOME;
END;

--调用自定义函数

SELECT ENAME, FUN_INCOME(7788) FROM EMP WHERE EMPNO=7788;

 

posted @ 2022-05-08 20:39  潜摩羯  阅读(2287)  评论(1编辑  收藏  举报