Oracle/PL_SQL2009. 11. 16. 14:49

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
Posted by 자수성가한 부자