2014년 6월 23일 월요일

[오라클자바커뮤니티,SQL교육추천,실무오라클강좌강의교육추천,ORACLE학원]오라클 패키지 소스 숨기기(oracle package body wrapping, package wrap)

[오라클자바커뮤니티,SQL교육추천,실무오라클강좌강의교육추천,ORACLE학원]오라클 패키지 소스 숨기기(oracle package body wrapping, package wrap)

wrap명령을 이용하여 PLSQL 소스 코드를 숨길 수 있는데 wrap 유틸리티 또는 DBMS_DDL 오라클 제공 패키지를 이용하여 사용가능 하다.

wrap 유틸리티는 SQL*Plus 스크립트와 같은 단순 소스 파일에 사용되고 DBMS_DDL 패키지는 PLSQL의 create procedure로 만든 Program unit에 사용될 수 있다.

wrap된 PLSQL 소스코드는 export/import등으로 옮겨 질 수 있지만 볼 수는 없다.

소스파일은 보통 .sql 확장자, wrap을 이용하게 되면 .plb 로 확장자 파일이 생긴다. 이 파일은 wrap유틸리티에 의해 pl/sql의 소스코드가 암호화(encrypt)된 것을 의미하며 텍스트 지만 PLSQL 소스코드 형태는 아니다.

- 특징
wrap명령은 패키지 명세에는 사용불 가하며, 패키지 바디에 사용가능하다.
wrap코드는 package body 작성 후 실행한다.
trigger 소스코드는 wrapping이 불가능 하다.


[실습]

먼저 테스트용 프러시저를 하나 만들자

SQL>conn scott/tiger

SQL> edit onjwrap.sql

[아래와 같은 내용으로]

 CREATE PROCEDURE onjwrap IS
      TYPE emp_tab IS TABLE OF emp%ROWTYPE INDEX BY PLS_INTEGER;
      emps      emp_tab;
    BEGIN
      SELECT * BULK COLLECT INTO emps FROM emp;
      FOR i IN 1..5 LOOP
        DBMS_OUTPUT.PUT_LINE('Emp Id: ' || emps(i).empno || 'Ename : ' || emps(i).ename);
      END LOOP;
    END;
   /


SQL> host
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\A>wrap iname=onjwrap.sql

PL/SQL Wrapper: Release 11.2.0.1.0- Production on 토 3월  08 10:14:28 2014

Copyright (c) 1993, 2009, Oracle.  All rights reserved.

Processing onjwrap.sql to onjwrap.plb

C:\Documents and Settings\A>exit


SQL> @onjwrap.plb

프로시저가 생성되었습니다.

SQL> set serveroutput on

SQL> call onjwrap();

Emp Id: 777Ename : 오라클자바
Emp Id: 3334Ename : Onj3
Emp Id: 1114Ename : Onj1
Emp Id: 2224Ename : Onj2
Emp Id: 8886Ename : Onj1

호출이 완료되었습니다.


SQL> set pagesize 40
SQL> select text from user_source where name = 'ONJWRAP';

TEXT
------------------------------------------------------------------------------
PROCEDURE onjwrap wrapped
a000000
34e
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
115 12c
SUdlrswe815xckcSvA4L4Kl9siEwg0zcLUoVfHQBueo0RJRITdu4mZBaHiuzY1KJGqzclCUt
ysxQYsSlCMFddUuRMT9yuzH/x4TNfb3+Q5L4xz9nB+Hjt+9Qj4swaaxnGKi4nEsNwQuLDXkp
NiqvWHz2/SZJD21Un+HANHb85sxkO2k3dCrzLGmMOuZqG9BRQ6pcwUJaTMIptISZB0xcEBV8
mGZCYSfngtCz8C3xbvBhoD4pG0+qu8wGOkcr/e07GqPcZ6HZOp+v2nkoHXlOxmHXW/zmRSOB
W2mwgKQ=

오라클자바커뮤니티교육센터, 개발자전문교육, 개인80%환급
www.oraclejavacommunity.com


평일주간(9:30~18:10) 개강
(6/30)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(6/30)[기업100%환급]안드로이드개발자과정
(6/30)[기업100%환급]SQL기초에서 Schema Object까지
(7/07)[기업100%환급]C#4.0,WinForm,ADO.NET프로그래밍
(7/07)[기업100%환급]Spring ,MyBatis,Hibernate실무과정
(7/07)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(7/07)[채용예정교육]오라클자바개발잘하는신입뽑기프로젝트,교육전취업확정

평일야간(19:00~21:50) 개강
(6/24)Spring3.X, MyBatis, Hibernate실무과정
(6/26)SQL초보에서실전전문가까지
(7/01)안드로이드개발자과정
(7/01)닷넷(C#,Network,ADO.NET,ASP.NET)마스터과정
(7/02)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/02)JAVA,Network&WEB&Framework(자바기초에서웹스프링까지)
(7/03)웹퍼블리싱 마스터
(7/15)MyBatis3.X, Hibernate4.X ORM실무과정
(7/22)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지

주말(10:00~17:50) 개강
(6/28)Spring3.X, MyBatis, Hibernate실무과정
(6/28)안드로이드개발자과정
(6/28)실무예제로 배워보는 jQuery(개발자/디자이너를위한)
(6/28)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(7/05)SQL초보에서 Schema Object까지
(7/12)자바웹(JSP,Spring,MyBatis,XPlatform)프로젝트과정
(7/12)MyBatis3.X, Hibernate4.X ORM실무과정
(7/12)개발자를위한PLSQL,SQL튜닝,힌트
(7/13)C#,ASP.NET마스터

주말저녁(18:30~22:20) 개강
(6/28)JAVA,Network&WEB&Framework
(6/28)SQL기초에서실무까지

댓글 없음:

댓글 쓰기