1、解密是不可能的,既然是你自己写的,就应该有源代码2、加密采用oracle 提供的 PL/SQL Wrapper

解决方案 »

  1.   

    1、设置环境变量
    D:\>set NLS_LANG=AMERICAN_AMERICA.USACII7
    或 D:\>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
    2、创建sql文件,将你写的存储过程写入文件中,命名xxxx.sql
    3、利用oracle的Wrapper将.sql文件加密
       wrap iname=xxxx.sql
       你可以发现,在文件的同目录下会生成一个同名但后缀名为.plbr的文件;
    4、在SQL/PLUS中运行此文件
      如:SQL>@d:\xxxx.plb
    5、大功告成。
      

  2.   

    如何加密Oracle中的存储过程 
    一、dos下
    1、准备工作
    C:>set NLS_LANG=us
    在c:下创建wl.sql文件,内容如下: 
    create or replace procedure wl
    (execlog VARCHAR2)
    AS
    v_sql VARCHAR2(2000);
    v_cnt INTEGER;
    BEGIN
        v_sql:='SELECT count(1)
                FROM USER_ALL_TABLES
                WHERE table_name=''EXECLOG''';
        EXECUTE IMMEDIATE v_sql INTO v_cnt;
        IF v_cnt=0 THEN
        v_sql:='CREATE TABLE execlog(execdate date,execlog varchar2(255))';
        EXECUTE IMMEDIATE v_sql;
        END IF;
        v_sql:='INSERT INTO execlog values(Sysdate,'''||execlog||''')';
        EXECUTE IMMEDIATE v_sql;
    END;
    2、加密
    C:>wrap iname=wl.sql
    3、恢复环境
    C:>C:>set NLS_LANG=二、sql下看看效果
    SQL> execute wl('1 live you ');