金融其它

DB2 调用java自定义方法报错

本人用java 写了个DES的加密类想在DB2里面调用然后将数据值加密将DES。class已经拷贝到IBMSQLLIBFUNCTION目录下后create function encrypt_des(str varchar(100))returns varchar(100)fencedvariantno sqllanguage javaPARAMETER STYLE javaexternal name 'DES!encrypt'...显示全部
本人用java 写了个DES的加密类

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

将DES。class已经拷贝到IBMSQLLIBFUNCTION目录下后

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 代码如上收起
参与9

查看其它 7 个回答weiruan85的回答

weiruan85weiruan85数据库管理员ibm
PARAMETER STYLE java
external name 'DES!encrypt';

错误貌似很明显就是没有找到'DES!encrypt';

另外: 兄不可以这么说leo ,那是个大牛
政府机关 · 2012-08-30
浏览1078

回答者

weiruan85
数据库管理员ibm

weiruan85 最近回答过的问题

回答状态

  • 发布时间:2012-08-30
  • 关注会员:1 人
  • 回答浏览:1078
  • X社区推广