2

我正在使用 Java 调用 Oracle 过程,其中一些过程将其 OUT 参数作为嵌套表类型。然后我需要处理嵌套表类型中的数据,甚至需要处理它们的元数据(嵌套表的属性)。

OracleCallableStatement stmt = null;
//Build the call here
StringBuilder call = new StringBuilder("{call ");
call.append(procName);
call.append("}");

System.out.println(call.toString());

conn = _motifUserDataSource.getConnection();
System.out.println("PREPARING : "+call.toString());
stmt = (OracleCallableStatement)conn.prepareCall(call.toString());
// The return parameter is an ARRAY type (nested table)
stmt.registerOutParameter(1, OracleTypes.ARRAY, "TABLE_NTT");
stmt.execute();

// Get the return value and covert it into a JDBC ResultSet
ARRAY array = (ARRAY) ((OracleCallableStatement)stmt).getOracleObject(1);
rs=array.getResultSet();

ResultSetMetaData metadata = rs.getMetaData();

问题: 当我尝试上面的代码时,我收到以下错误

Caused by: java.sql.SQLException: Unsupported feature: getMetaData
at oracle.jdbc.driver.ArrayDataResultSet.getMetaData(ArrayDataResultSet.java:1013)
at com.Testdb.execCheckRefCursorData

我需要这个元数据来识别处理阶段所需的属性/列名。

关于如何处理嵌套表类型 OUT 参数并使用结果集从中提取数据和元数据信息的任何输入?

4

0 回答 0