小编Ken*_*nny的帖子

pl/sql过程为varchar2列返回3个问号('???')(wls 10.3.4 - weblogic 11g)

我得到以下代码在OAS10上正常工作,从sql过程中获取自定义对象数组:

Connection conn = null;
OracleCallableStatement stmt = null;
RequestsWrapper requestsWrapper = null;
conn = getConnection(DATASOURCE);
if (conn != null) {
    stmt = (OracleCallableStatement) conn.prepareCall("{call packageName.procedureName(?, ?, ?)}");
    stmt.registerOutParameter(3, OracleTypes.ARRAY, "V_ARRAY_OF_CUSTOM_OBJECTS");
    stmt.setString(1, in1);
    stmt.setString(2, in2);
    stmt.execute();
    ARRAY zahtjev = (ARRAY) cs.getArray(3);
    RequestsWrapper requestsWrapper = new RequestsWrapper();
    for (Object object : (Object[]) zahtjev.getArray()) {
        if (object != null) {
              CustomObject co = new CustomObject();
              Object[] attributes = ((STRUCT) object).getAttributes();
              co.setVarcharAttribute((String) attributes[0]);
              co.setNumericAttribute(((BigDecimal) attributes[1]).intValue());
              requestsWrapper.getObjectList().add(co);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

我必须将应用程序迁移到WLS 10.3.4.当我尝试执行现有代码时,我遇到了一个异常:无法转换为oracle.sql.ARRAY.我在WLS文档中找到了:

对于Oracle Thin驱动程序中的大多数扩展,您可以使用标准技术,如使用JDBC扩展到JDBC接口中所述.但是,Oracle …

java plsql varchar2 weblogic11g

3
推荐指数
1
解决办法
2497
查看次数

标签 统计

java ×1

plsql ×1

varchar2 ×1

weblogic11g ×1