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 函數名;