爲了把某一個模塊的函數、存儲過程等方便查詢維護,可以把它們打到一個包裏。下面給出一個簡單的小例子。
1、創建包頭
create or replace package chen_pack
is
function f_c_getstaffNum(in_status in varchar2) return number;
procedure p_c_sendmsg(receiver in varchar2,content in varchar2);
end;
2、創建包體
create or replace package body chen_pack
as
function f_c_getstaffNum(in_status in varchar2)
return number
as
outnum number;
begin
select count(1) into outnum from icdpub.t_ucp_staffbasicinfo g where g.staffidstatus = in_status;
return outnum;
end f_c_getstaffNum;
procedure p_c_sendmsg(receiver in varchar2,content in varchar2)
as
begin
insert into t_c_msg(sender,receiver,content,sendtime) values('10658666',receiver,content,sysdate);
commit;
end p_c_sendmsg;
end chen_pack;
3.調用
可以在存儲過程中調用
declare
v_staffnum number;
begin
v_staffnum :=chen_pack.f_c_getstaffNum('01');
dbms_output.put_line(v_staffnum);
chen_pack.p_c_sendmsg('138','測試短信'||sysdate);
end;
也可以直接在sql中調用函數
select chen_pack.f_c_getstaffNum('01') from dual;
詳細的可以參考這位同仁的文章:
http://www.cnblogs.com/lovemoon714/archive/2012/02/29/2373695.html