ORACLE創建函數,調用函數。
函數的定義:
create/replace function 函數名 (參數名 輸入輸出類型 字段類型) return 字段類型 is
變量名 字段類型; --函數的內部變量,需要包含字段類型的長度
begin
主體;
return(變量名);
end 函數名;
要點:
定義函數的參數和輸出類型的時候不需要考慮字段類型的長度;
函數的內部變量需包含字段類型的長度;
函數可以沒有輸入輸出參數,但一定要有返回(return)的數據類型,因此必須有內部變量存儲return的數據;
函數的輸入輸出參數可以在主體中直接使用。
函數的執行:
--sqlplus
var 變量名 字段類型(包含長度);
exec :變量名:=函數名(參數的值,接收輸出變量的變量名)
--developer
select 函數名(參數) from dual;
1.創建函數
CREATE OR REPLACE FUNCTION F_MSG( NAME_U IN VARCHAR2, NAME_P IN VARCHAR2 ) RETURN NUMBER IS ALL_T NUMBER; BEGIN SELECT SUM(A.PRODUCT_NUM*A.PRICE) INTO ALL_T FROM PRODUCT_RELEASE A,USER_M B WHERE A.USER_ID=B.USER_ID AND B.USER_NAME=NAME_U AND A.PRODUCT_NAME=NAME_P GROUP BY B.USER_NAME,A.PRODUCT_NAME; RETURN ALL_T; END F_MSG;
2、調用函數
SELECT F_MSG('張力','護膚水') AS"總額" FROM DUAL;
