一、存儲函數的定義
函數是PLSQL中另一種子程序,與存儲過程不同的是,存儲函數具有返回值,就像C/C++中的函數一樣,可以通過函數返回某些值,我們先來看下下面定義的一個返回僱員薪資的函數:
create or replace function get_income(v_empno emp.empno%type)
return number
as
v_income emp.sal%type;
begin
select sal+nvl(comm,0) into v_income from emp where empno=v_empno;
return v_income;
end;
/
可以看到在定義函數時,和存儲過程最大的區別在於在as前定義了函數的返回值類型,如上面的例子我們定義了一個返回number類型數據的存儲函數。
接下來我們可以使用以下的方法使用該函數:
二、存儲函數的使用
2.1 在PLSQL代碼塊中使用
declare
v_income emp.sal%type;
begin
v_income:=get_income(7499);
dbms_output.put_line(v_income);
end;
/
2.2 在標準SQL語句中使用函數
select get_income(7499) from dual;