【发布时间】:2018-06-14 04:24:46
【问题描述】:
我在 Oracle 中创建了 Java 类,但不知道如何创建函数来返回值。任何帮助,将不胜感激。
create or replace and compile java source named "ErrorMessage"
as
import java.util.zip.Inflater;
public class ErrorMessage {
public static String uncompressMessage(byte[] cdata, int uncompressedLength){
String uncompData2 = null;
try{
Inflater inflater = new Inflater();
inflater.setInput(cdata);
Byte [] uncompData = new byte[uncompressedLength];
int n = inflater.inflate(uncompData);
uncompData2 = uncompData.toString();
inflater.end();
}catch (Exception e){
e.getMessage();
}
return uncompData2;
}
}
create or replace
function getErrorMessage(msgdata blob, msgdatalength integer)
return varchar2
as language java
name 'ErrorMessage.uncompressMessage(byte[],int)
return java.lang.String';
【问题讨论】:
-
您的数据类型不匹配 - 如果您传递的是 BLOB,则参数的数据类型应为
oracle.sql.BLOB而不是byte[]
标签: java oracle stored-procedures