db2 java udf 返回数组_有人接触过DB2调用java方法吗? 就是DB2通过调用java方法创建的自定义函数(DB2称为UDF)...

本文介绍了如何在DB2中使用Java User Defined Function(UDF)进行数据加密,特别是DES加密。作者遇到在创建和测试加密函数时出现错误[-4306, SQL State: 42724]的问题,通过研究和尝试,最终解决了问题。关键在于正确配置和调用Java类。" 102889072,7584189,安装科学计算库scipy的详细步骤,"['Python开发', '数据科学', '科学计算', 'numpy库', '软件安装']
摘要由CSDN通过智能技术生成

本人用java写了个DES的加密类想在DB2里面调用然后将数据值加密将DES。class已经拷贝到IBM\SQLLIB\FUNCTION目录下后createfunctionencrypt_des(strvarchar(100))returnsvarchar(100)fe...

本人用java 写了个DES的加密类

想在DB2里面调用然后将数据值加密

将DES。class已经拷贝到IBM\SQLLIB\FUNCTION目录下后

create function encrypt_des(str varchar(100))

returns varchar(100)

fenced

variant

no sql

language java

PARAMETER STYLE java

external name 'DES!encrypt';

用一下脚本创建函数成功

在测试的时候 values(encrypt_des('123'));

报错如下

[Error Code: -4306, SQL State: 42724] DB2 SQL Error: SQLCODE=-4306,

SQLSTATE=42724,

SQLERRMC=DB2ADMIN.ENCRYPT_DES;SQL120822162338500;encrypt;(Ljava/lang/String;)Lj,

DRIVER=3.50.152

这里网上的资料很少,请知道的大牛帮忙解答下,十分感谢~

public String byteArr2HexStr(byte[] arrB) throws Exception {

int iLen = arrB.length;

StringBuffer sb = new StringBuffer(iLen * 2);

for (int i = 0; i < iLen; i++) {

int intTmp = arrB[i];

while (intTmp < 0) {

intTmp = intTmp + 256;

}

if (intTmp < 16) {

sb.append("0");

}

sb.append(Integer.toString(intTmp, 16));

}

return sb.toString();

}

public String encrypt(String strIn) throws Exception {

return byteArr2HexStr(encrypt(strIn.getBytes()));

}

java 代码如上

http://www.blogjava.net/yrJavaWorld/archive/2006/07/21/59363.html

通过以上帖子 搞定了这个问题

解决问题还是得静下心来呀

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值