1. 程式人生 > 其它 >SQL自定義函式

SQL自定義函式

--.自定義函式
--語法:

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;