728x90
패키지(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_ename(delEname varchar2);
function call_bonus(vename emp.ename%type) return number;
end;
/
----------------------패키지 실행(body)-------------------------------
create or replace package body encore
is
-- 특정사원(이름) 삭제 프로시저
procedure del_ename(delEname varchar2)
is
begin
delete from emp3
where ename= delEname;
commit;
dbms_output.put_line('#'||delEname||'사원이 삭제되었습니다');
end;
-- 특정사원의 보너스 얻는 함수
function call_bonus(vename emp.ename%type)
return number
is
sal emp.sal%type;
bonus number;
begin
select sal into sal
from emp
where ename = vename;
-- 보너스 계산
bonus := sal*2;
return bonus;
end;
end;
/
--실행
exec encore.del_ename('FORD');
variable bonus NUMBER;
exec encore.vsll_nonud('KING');
print bonus;
'Web develop > SQL' 카테고리의 다른 글
[SQL/ORACLE] 트리거(Trigger) 형식 및 사용예제 (0) | 2019.06.16 |
---|---|
[SQL/ORACLE] 커서 (CURSOR) 형식, FOR문에 사용하는 커서, ORA-01422 에러 (0) | 2019.06.16 |
[SQL/ORACLE] 저장함수(Stored Function) 형식 및 사용방법 (0) | 2019.06.16 |
[SQL/ORACLE] 저장 프로시저 (Stored Procedure) 형식, 사용 예제 (0) | 2019.06.16 |
[SQL/ORACLE] PL/SQL 반복문 형식 (LOOP, FOR, 다중 FOR문,WHILE) (0) | 2019.06.16 |