wrap은 오라클 서버 환경에 있는 유틸리티로, sql파일을 plb파일로 변경시 사용한다.
실제 사용자 뿐만 아니라 오라클에서도 이와같이 spec으로 패키지 내에 procedure, function등을 선언한후
배포시에 1, 2번만 배포한다.
1. pack_hr_management.sql(spec)
2. pack_hr_management.plb(소스를 감춘다.)
3. pack_hr_management_body.sql
--------------------------------
예) pack_hr_management 패키지
--------------------------------
create or replace package pack_hr_management
is
procedure up_create_table
(p_tab_name in varchar2,
p_message out varchar2);
function uf_dept_avg_sal
(p_deptno emp.deptno%type)
return number;
end;
/
create or replace package body pack_hr_management
is
procedure up_create_table
(p_tab_name in varchar2,
p_message out varchar2)
is
e1 exception;
begin
declare
e_tab_exist exception;
pragma exception_init(e_tab_exist, -955);
begin
execute immediate 'create table '||p_tab_name||'(col1 number)';
exception
when e_tab_exist then
execute immediate 'drop table '||p_tab_name||' purge';
when others then
raise e1;
end;
execute immediate 'create table '||p_tab_name||'(col1 number)';
p_message := 'Table '||p_tab_name||' created!';
exception
when e1 then
p_message := 'Unknown error!';
end;
/
'Oracle > PL_SQL' 카테고리의 다른 글
package의 overloading (0) | 2009.11.17 |
---|---|
테이블 변경시 관련 procedure, function, package 확인 (0) | 2009.11.16 |
Exception handling (0) | 2009.11.13 |
Cursor (0) | 2009.11.12 |
PLS_INTEGER (1) | 2009.11.12 |