oracle中的存儲函數,和系統內的函數類似,可以像調用系統函數一樣調用存儲函數。它與存儲過程的唯一區別就是存儲過程沒有return返回值,存儲函數可以與存儲過程互換,存儲函數可以在存儲過程中調用。
存儲函數的基本語法結構:
create [or replace] function 函數名[(參數名 in|out 參數類型)] return 返回值數據類型 is
聲明變量部分;
begin
代碼塊;
return 結果變量;
end [函數名];
例如:查指定員工的年薪
創建存儲函數:
create or replace function yearsal(eno in emp.empno%type) return number is
psal emp.sal%type;
pcomm emp.comm%type;
begin
select emp.sal into psal from emp where empno = eno;
return psal * 12 + nvl(pcomm, 0);
end yearsal;
調用存儲函數:
declare
begin
dbms_output.put_line(yearsal(7369));
end;
像系統函數一樣調用存儲函數: select yearsal(7369) from dual;
結果:
員工年薪
----------
32400
以上就是存儲函數的基本知識和應用。