方式一:

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐