1. 程式人生 > >Oracle學習筆記第十七天

Oracle學習筆記第十七天

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;