PL/SQL打包

Jack_Miller發表於2012-03-09
PL/SQL打包工具wrap:
dbms_ddl包中有一個打包函式wrap和打包過程create_wrapped,把原始碼轉換成十六進位制進行隱藏。
wrap:打包函式,輸入原始碼後,返回打包好的PL/SQL原始碼;
create_wrapped:打包過程,對輸入的原始碼進行打包;
要檢視打包後的原始碼,可通過檢視 user_source進行檢視
desc user_source;

Column Datatype NULL Description
OWNER VARCHAR2(30) NOT NULL Owner of the object
NAME VARCHAR2(30) NOT NULL Name of the object
TYPE VARCHAR2(12) Type of object: FUNCTION, JAVA SOURCE, PACKAGE, PACKAGE BODY, PROCEDURE, TRIGGER, TYPE, TYPE BODY
LINE NUMBER NOT NULL Line number of this line of source
TEXT VARCHAR2(4000) Text source of the stored object

示例:
declare
       v_procedure varchar2(32767);
begin
       v_procedure := 'create or replace procedure wrap_test is '
       ||'               rec airport_list%rowtype; '
       ||'               cursor airport_cur is select * from airport_list; '
       ||'             begin '
       ||'               for rec in cursor loop '
       ||'                   dbms_output.put_line(rec.airport_code); '
       ||'               end loop; '
       ||'             end; ';
       sys.dbms_ddl.create_wrapped(v_procedure);
execute immediate dbms_ddl.wrap(v_procedure);
end;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25791987/viewspace-718136/,如需轉載,請註明出處,否則將追究法律責任。