无法打印oracle.sql.ARRAY的值

时间:2014-11-21 00:08:45

标签: java plsql oracle11g

我收到了一个StudentIds列表List<String>

我稍后将其转换为String[]

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[]映射到RAW的PLSQL表,该表定义为STUDENT_ID_TYPE

ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("STUDENT_ID_TYPE", connection);

现在我从中获取oracle.sql.ARRAY

ARRAY studentArray = new ARRAY(arrayDescriptor, connection, studentIdArray);

无法找到如何在studentArray中打印值,但是当我打印studentArray.length()时,它返回1, 我觉得没错。 BUt当这个数组传递给我的PLSQL过程时,我得到自定义异常。

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

1 个答案:

答案 0 :(得分:1)

要在studentArray中打印值,您可以先将数据作为Datum [],然后通过datum [i] .stringValue()将Datum值转换为String。

Datum[] datumArr = studentArray.getOracleArray();

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