Oracle學習筆記第十七天
阿新 • • 發佈:2019-01-05
Oracle學習筆記第十七天
函式
-- 語法
CREATE [OR REPLACE] FUNCTION
<function name> [(param1,param2)] --函式名、引數
RETURN <datatype> IS|AS --返回值型別
[local declarations] --變數宣告
BEGIN
Executable Statements;
RETURN result; --返回值
EXCEPTION
Exception handlers;
END <function name> ;
**注意:入參和出參在定義型別是不要定義長度,否則會報錯。 **
-- 示例
-----定義函式
----建立函式根據工號查詢工資
create or replace function
get_emp_sal(v_empno emp.empno%type)
return emp.sal%type --指定返回值的資料型別
is
v_sal emp.sal%type;
begin
select e.sal into v_sal
from emp e
where e.empno = v_empno;
--返回查詢結果
return v_sal;
end;
------呼叫函式(方法一)在塊中呼叫
declare
v_result emp.sal%type;
begin
v_result := get_emp_sal(7788);
dbms_output.put_line('工資為:'||v_result);
end;
/
------呼叫函式(方法二)通過空表呼叫
select get_emp_sal(7788) from dual;
函式和儲存過程一樣,A使用者呼叫B使用者的函式同樣也需要授權。
-- 授權語法
GRANT EXECUTE ON fn_name TO userName;
GRANT EXECUTE ON fn_name TO PUBLIC;
-- 刪除許可權
DROP FUNCTION fn_name;