Oracle中包的用法
Oracle中有包(package)的概念,主要是把一些存儲過程、函數封裝到一個包里,方便管理和調用。
--包頭,對包里的存儲過程進行聲明
create or replace package myemp_dept_pkg
as
--傳入部門編號,輸出部門編號和名稱
procedure dept_deptinfo_proc (deptnoin in dept.deptno%type , deptinfo out varchar2);
--針對員工表,寫一個存儲過程,輸入參數為部門編號,輸出部門員工的數量
procedure myemp_count_proc (deptnoin in myemp.deptno%type);
Advertisements
end;
--包體,對包里的存儲過程進行代碼實現
create or replace package body myemp_dept_pkg
as
--第一個
procedure dept_deptinfo_proc (deptnoin in dept.deptno%type , deptinfo out varchar2)
as
temp varchar2(50);
begin
select '部門編號:' || deptno || ', 部門名稱: ' || dname
into temp from dept
where deptno = deptnoin;
deptinfo := temp;
end dept_deptinfo_proc;
Advertisements
--第二個
procedure myemp_count_proc (deptnoin in myemp.deptno%type)
as
temp number;
begin
select count(*) into temp
from myemp
where deptno = deptnoin;
dbms_output.put_line('部門編號:' || deptnoin || ',員工數量:' || temp);
end ;
--第N個
end;
--調用包里的內容
declare
deptinfo varchar2(50);
begin
deptinfo := '';
--調用包中第一個
myemp_dept_pkg.dept_deptinfo_proc(40,deptinfo);
dbms_output.put_line(deptinfo);
--調用包中第二個
myemp_dept_pkg.myemp_count_proc(20);
end;