Uses DBMS_DDL.CREATE_WRAPPED to obfuscate PL/SQL source : DBMS_DDL « System Packages « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL>
SQL> CREATE TABLE myTable (
  2                             myID NUMBER(10) PRIMARY KEY,
  3                             myCode VARCHAR2(10 CHAR) NOT NULL,
  4                             region VARCHAR2(30 CHAR) NOT NULL,
  5                             country VARCHAR2(30 CHAR) NOT NULL);

Table created.

SQL> INSERT INTO myTable (myID, myCode, region, country)
  2  VALUES (1, 'AKL', 'Auckland', 'NEW ZEALAND');

1 row created.

SQL>
SQL>
SQL> DECLARE
  2  v_procedure VARCHAR2(32767);
  3  BEGIN
  4    v_procedure := 'CREATE OR REPLACE PROCEDURE create_wrapped_test '
  5    ||'IS '
  6    ||'   v_myCodes myTable.myCode%TYPE; '
  7    ||' '
  8    ||'   CURSOR airport_cur IS '
  9    ||'      SELECT myCode'
 10    ||'        FROM myTable'
 11    ||'        ORDER BY myCode;'
 12    ||' '
 13    ||'BEGIN '
 14    ||'   FOR y IN airport_cur LOOP '
 15    ||'      DBMS_OUTPUT.PUT_LINE(''Airport Code: ''||y.myCode);'
 16    ||'   END LOOP;'
 17    || 'END;';
 18
 19    SYS.DBMS_DDL.CREATE_WRAPPED(v_procedure);
 20
 21  END;
 22  /

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL>
SQL> SELECT text
  2  FROM user_source
  3  WHERE name = 'CREATE_WRAPPED_TEST';

TEXT
------------------------------------------------------------------------------------------------------------------------
PROCEDURE create_wrapped_test wrapped
a000000
b2
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
7
130 10b
14sbBa4nRvMfcC4CwQzOuLJOzQMwg1zQr54VfHRAEIlxkSMxHbResWCIfgyhXmOwh9KP3mV6
ue7N1Bu6yshPJJosBnV0g93nQMyZ6Fv2wVAbNZZpEoUyrkXJgFb6yOkoCicnlkM8e/L1TRs2
WXCu5A/XwL3ZQy0170tsH1viWc3RqirjYmXDUoA+TaUrv4J10OmFTjPghF1vGSs7ro7bRD7H
wYrLrgI/KE8/zqwpT2SZjoYEv7VusA9LA8fIl9Z75KbcK2nt


SQL>
SQL>
SQL> SET SERVEROUTPUT ON
SQL>
SQL> EXEC create_wrapped_test
Airport Code: AKL

PL/SQL procedure successfully completed.

SQL>
SQL>
SQL>
SQL> drop table myTable;

Table dropped.








31.7.DBMS_DDL
31.7.1.Uses DBMS_DDL.CREATE_WRAPPED to obfuscate PL/SQL source