ITPub博客

首页 > Linux操作系统 > Linux操作系统 > plsql调用c函数笔记

plsql调用c函数笔记

原创 Linux操作系统 作者:edeed 时间:2019-03-07 07:51:04 0 删除 编辑

--如果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;
/


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10881/viewspace-178021/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-04-30

  • 博文量
    59
  • 访问量
    52180