Oracle : WRAP obsfucation PL/SQL

parfois on a besoin de distribuer du code PL/SQL sans exposer le code source, pour cela Oracle propose un utilitaire autonome qui masque le code source en le convertissant en code portable, le code resultant est independant de la plate forme,permet un chargement et une liaison dynamique, la syntaxe est simple :
C:\>wrap iname=proc.sql oname=proc.plb
PL/SQL Wrapper: Release 9.2.0.1.0- Production on Lu Jan 11 15:18:35 2010
Copyright (c) Oracle Corporation 1993, 2001. All Rights Reserved.
Processing proc.sql to proc.plb
C:\>

le fichier proc.sql contient le code suivant :
create or replace procedure hello is
begin
dbms_output.put_line('Appel de procedure');
end;
/

une fois le fichier converti on l'appel comme n'importe quel fchier sql :
SQL> @c:\proc.plb
Procédure créée.
SQL> set serveroutput on
SQL> exec hello
Appel de procedure

Procédure PL/SQL terminée avec succés.
SQL>

vous pouvez consulter la vue user_source pour voire le code source converti de la procedure,c'est la meme chose que vous trouverez dans le fichier plb.
SQL> col name format a10
SQL> set pagesize 1000
SQL> col text format a30
SQL> set linesize 1000
SQL> select NAME,TYPE,TEXT from user_source where NAME='HELLO';
NAME TYPE TEXT
HELLO PROCEDURE procedure hello wrapped


0


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


abcd


3


7


9200000


1


4


0


4


2 :e:


1HELLO:


1DBMS_OUTPUT:


1PUT_LINE:


1Appel de procedure:


0





0


0


14


2


0 9a b4 55 6a :2 a0 6b 6e


a5 57 b7 a4 b1 11 68 4f


1d 17 b5


14


2


0 3 17 18 1c 20 24 28


2b 30 31 36 38 3c 3e 4a


4e 50 51 5a


14


2


0 b 0 :3 1 :2 d 16 :b 1


14


4


0 1 0 :2 1


:6 3 :2 2 :7 1


5c


4


:3 0 1 :a 0 f


1 :8 0 2 :2 0


f 1 3 :2 0


2 :3 0 3 :3 0


5 6 0 4


:4 0 3 7 9


:2 0 b 5 e


:3 0 e 0 e


d b c :6 0


f :2 0 1 3


e 12 :3 0 11


f 13 :8 0


7


4


:3 0 1 8 1


a


1


4


0


12


0


1


14


1


1


0 0 0 0 0 0 0 0


0 0 0 0 0 0 0 0


0 0 0 0


1 0 1


0