方式一:
$ wrap iname=call.sql oname=call.plb
PL/SQL Wrapper: Release 19.0.0.0.0 - Production on Fri Mar 28 09:17:06 2025
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Processing call.sql to call.plb
[oracle@rac1 bk]$ ls
call.plb call.sql
[oracle@rac1 bk]$ cat call.plb
CREATE OR REPLACE FUNCTION call_OracleJD wrapped
a000000
1
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
abcd
8
8e c2
32vWR/3HmYIRveYpXw2AxlcmRtcwg8eZgcfLCNL+XlrcR/r0/pbyWf+hgcDMULjfw+fHdMAz
uHRlJcPnwLK9spvWmbitOdXOV5K+B3tFmMUwrUCtwDqtkkXFTWr1HpSOQ0mwbx+YFKcUJ5Fs
p2z8QxSLYx5EnI4Bi2P2xY5jp4lvQz4ODE26x3+mprPeVr0=
/
在sqlplus下执行加密函数即可
@call.plb
方式二:
使用自带的存储过程加密,在执行密文
SELECT DBMS_DDL.WRAP('
CREATE OR REPLACE FUNCTION call_OracleJD (c1 VARCHAR2) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME ''OracleJD.processData(java.lang.String) return java.lang.String'';
') FROM dual;
SELECT DBMS_DDL.WRAP(q'[
CREATE OR REPLACE FUNCTION call_OracleJD (c1 VARCHAR2) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'OracleJD.processData(java.lang.String) return java.lang.String';
]') FROM dual;
使用q'[ ]' 避免单引号冲突,不使用q,单引号需要两个