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;