Java 无法打印oracle.sql.ARRAY的值

Java 无法打印oracle.sql.ARRAY的值,java,plsql,oracle11g,Java,Plsql,Oracle11g,我得到一份学生名单,作为名单 我稍后将其转换为字符串[] String[] studentIdArray = null; if (list!= null) { // StudentList studentIdArray = list.toArray(new String[list.size()]); // printed studentIdArray and print the values. its fine } 然后声明一个arrayDescriptor,将JavaString[]映射到

我得到一份学生名单,作为
名单

我稍后将其转换为
字符串[]

String[] studentIdArray = null;
if (list!= null) { // StudentList
 studentIdArray = list.toArray(new String[list.size()]); // printed studentIdArray and print the values. its fine
}
然后声明一个arrayDescriptor,将Java
String[]
映射到定义为
STUDENT\u ID\u TYPE

ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("STUDENT_ID_TYPE", connection);
现在我从中得到了
oracle.sql.ARRAY

ARRAY studentArray = new ARRAY(arrayDescriptor, connection, studentIdArray);
我无法找到如何打印studentArray中的值,尽管当我打印
studentArray.length()
时,它返回为1 我觉得是对的。但当这个数组被传递到我的PLSQL过程时,我得到了自定义异常


编辑:当我使用dump()时,它只是作为元素[0]转储[B@438620c7

要打印studentArray中的值,您可以首先将数据作为基准[],然后将基准值转换为按基准[i]排列的字符串。stringValue()

Datum[] datumArr = studentArray.getOracleArray();

for (Datum datum: datumArr)
{
    System.out.println(datum.stringValue());
}