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;

Advertisements

你可能會喜歡