SQL自定義函式
阿新 • • 發佈:2022-05-08
--.自定義函式
--語法:
CREATE OR REPLACE FUNCTION FUN_函式名(引數1 資料型別,引數2,[IN|OUT|IN OUT] 資料型別……) 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;