Oracle --存儲函數和存儲過程

oracle提供能夠將pl/sql程序塊存儲在數據庫中,並能夠在任何地方運行它,這種pl/sql程序塊稱爲存儲過程或函數。sql

存儲過程和函數的區別:函數須要向調用者返回數據,而過程不須要返回數據。數據庫

1.建立函數
oracle

create or replace function getAllSalary(i_cstmId in t_consumption.csptn_id%type)
  return number is
  v_sum number;
begin
  select sum(amount)
    into v_sum
    from t_consumption tcm
   where tcm.cstm_id = i_cstmId;
  return v_sum;
end getAllSalary;

調用函數函數

在函數或存儲過程裏面都可調用函數code

declare
        v_mount number;
begin
        --SQL語句
         v_mount := getAllSalary(100000001);        
end;

2.建立存儲過程get

create or replace procedure getAllSalary(i_cstmId in t_consumption.csptn_id%type,
                                                             o_amount number)
is
        v_sum number;
begin
  select sum(amount)
    into v_sum
    from t_consumption tcm
   where tcm.cstm_id = i_cstmId; 
   --給輸出賦值
   o_amount = v_sum;   
end getAllSalary;

調用存儲過程io

declare
        v_mount number;
begin
        --執行SQL語句
        --這裏是在存儲過程裏面調用存儲過程
        getAllSalary(i_cstmId => '100000001', o_amount => v_mount);        
end;

3. 刪除函數或存儲過程
function

可使用drop procedure命令對不須要的存儲過程進行刪除,語法以下:class

drop procedure 存儲過程名;select

可使用drop function命令對不須要的函數進行刪除,語法以下:

drop function 函數名;

相關文章
相關標籤/搜索