[Oracle] PL/SQL 패키지(Package)
<패키지(Package)>
- 동일한 프로시저명 또는 함수명을 구분
(NameSpace개념)
--------------------패키지 선언---------------------------
create or replace package 패키지명
is
정의될 저장프로시저와 저장함수
end;
/
--------------------패키지 실행(body)---------------------------
create or replace package body 패키지명
is
저장프로시저와 저장함수 정의
end;
/
실행) EXEC[UTE] 패키지명.저장프로시저명
--------------------패키지 선언---------------------------
create or replace package encore
is
procedure del_dept(vdeptno number);
function call_bonus(vename emp.ename%type) return number;
end;
/
--------------------패키지 실행(body)---------------------------
create or replace package body encore
is
-- 특정부서 삭제 프로시저
procedure del_dept(vdeptno number)
is
begin
delete from dept3
where deptno=vdeptno;
dbms_output.put_line('#'||vdeptno||'번 부서를 삭제하였습니다!!');
end;
-- 특정사원의 보너스 얻는 함수
function call_bonus(vename emp.ename%type)
return number
is
vsal emp.sal%type;
bonus number;
begin
select sal into vsal
from emp
where ename=vename;
bonus := vsal*2;
return bonus;
end;
end;
/