oracle加密函数或存储过程代码的两种方式

方式一:

$ wrap iname=call.sql >

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,单引号需要两个

请使用浏览器的分享功能分享到微信等