1.過程(procedure)sql
what:執行特定的操做函數
why:封裝代碼,提升代碼重用率,易於維護。io
style:能夠返回多個數據(輸入參數IN,輸出參數OUT)function
sample:變量
create procedure name_pro (IN partment1 datatype, IN partment2 datatype, out partment2 datatype)call
is數據
begindata
---sql/plsql執行代碼return
end;參數
/
2.函數
what:執行數據操做,返回特定的數據
why:封裝代碼,提升代碼重用率,易於維護。
style:使用RETTUEN語句,返回一個數據
sample
create function name_fun (partment1 datatype, partment2 datatype)
retuen datatype is
re_name datatype;
begin
--執行代碼
return re_name;
end;
/
3.包
what:對函數和過程的邏輯封裝
why:封裝代碼,提升代碼重用率,易於維護。
style:由包規範(定義變量,常量,函數和過程)和包體(實現過程和函數)構成
sample:
create package name_pack is
--定義定義變量,常量,函數和過程
procedure pro_name(...);
function fun_name(...);
end;
/
create package body name_pack is
create procedure name_pro (IN partment1 datatype, IN partment2 datatype, out partment2 datatype)
is
begin
---sql/plsql執行代碼
end;
/
create function name_fun (partment1 datatype, partment2 datatype)
retuen datatype is
re_name datatype;
begin
--執行代碼
return re_name;
end;
/
--調用包
call name_pack.partment();