--如果dll或so库发生变化,LIBRARY得重刷一下
必须把libaipay_jni2-1.0.so.0.0.0放到$ORACLE_HOME/lib/下
CREATE OR REPLACE LIBRARY aipay_jni2 AS '$ORACLE_HOME/lib/libaipay_jni2-1.0.so.0.0.0';
GRANT EXECUTE on aipay_jni2 to PUBLIC;
函数或存储过程只能在服务端执行.
--假如是函数
CREATE OR REPLACE FUNCTION fc_c_decipher
(x IN VARCHAR2, y IN BINARY_INTEGER)
RETURN VARCHAR2
AS
EXTERNAL LIBRARY aipay_jni2
NAME "decipher3"
LANGUAGE c;
/
--测试函数
select fc_c_decipher('9bddcff77b68a916',16) from dual;
--假如是存储过程
CREATE OR REPLACE procedure sp_c_decipher
(x IN VARCHAR2, y out VARCHAR2)
AS
EXTERNAL LIBRARY aipay_jni2
NAME "decipher3"
LANGUAGE c;
/
--测试存储过程
set serverout on
DECLARE
X VARCHAR2(200);
Y VARCHAR2(200);
BEGIN
X := '9bddcff77b68a916';
Y := '';
AIPAY.sp_c_decipher ( X, Y );
dbms_output.put_line('解密后密码:'||y);
COMMIT;
END;
/