如何 return MbElement[] 从 Java 到 ESQL?
How to return MbElement[] from Java to ESQL?
我想将 REFERENCE 作为参数传递给 Java 方法并对其进行转换,然后我想以 MbElement[] 的形式 return。
到目前为止,我尝试了以下方法。
我在 ESQL 中使用以下代码
CALL retrieveData(CAST(AGE AS INTEGER),OutputRoot.XMLNSC.employees) into RESULT;
调用java方法如下:
create function retrieveData(IN empId INTEGER,INOUT outputXML REFERENCE)
returns integer
language java
external name "com.test.util.Database.retrieve";
下面是java方法:
public static Long retrieve(Long employeeAge,MbElement[] outputRoot)
{
MbElement xmlnsc = outputRoot[0].getFirstElementByPath("XMLNSC");
MbElement employees = xmlnsc.createElementAsFirstChild(MbElement.TYPE_NAME, "employees", null);
MbElement employee =employees.createElementAsLastChild(MbElement.TYPE_NAME, "employee", "");
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-id", 1001);
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-name", "john");
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-age", 30);
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-city", "london");
return new Long(0);
}
在测试上面的代码时,它抛出 SqlRoutine::clearDownChildEnv 错误。
如何解决这个问题。提前致谢...
我得到了输出。
我用过以下方式:
DECLARE RESULT INTEGER;
SET OutputRoot.XMLNSC.employees=null;
DECLARE outputref REFERENCE TO OutputRoot.XMLNSC.employees;
CALL retrieveData(CAST(AGE AS INTEGER),outputref) into RESULT;
它工作正常。
我想将 REFERENCE 作为参数传递给 Java 方法并对其进行转换,然后我想以 MbElement[] 的形式 return。
到目前为止,我尝试了以下方法。
我在 ESQL 中使用以下代码
CALL retrieveData(CAST(AGE AS INTEGER),OutputRoot.XMLNSC.employees) into RESULT;
调用java方法如下:
create function retrieveData(IN empId INTEGER,INOUT outputXML REFERENCE)
returns integer
language java
external name "com.test.util.Database.retrieve";
下面是java方法:
public static Long retrieve(Long employeeAge,MbElement[] outputRoot)
{
MbElement xmlnsc = outputRoot[0].getFirstElementByPath("XMLNSC");
MbElement employees = xmlnsc.createElementAsFirstChild(MbElement.TYPE_NAME, "employees", null);
MbElement employee =employees.createElementAsLastChild(MbElement.TYPE_NAME, "employee", "");
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-id", 1001);
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-name", "john");
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-age", 30);
employee.createElementAsLastChild(MbElement.TYPE_NAME, "emp-city", "london");
return new Long(0);
}
在测试上面的代码时,它抛出 SqlRoutine::clearDownChildEnv 错误。
如何解决这个问题。提前致谢...
我得到了输出。
我用过以下方式:
DECLARE RESULT INTEGER;
SET OutputRoot.XMLNSC.employees=null;
DECLARE outputref REFERENCE TO OutputRoot.XMLNSC.employees;
CALL retrieveData(CAST(AGE AS INTEGER),outputref) into RESULT;
它工作正常。