我收到了一个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
答案 0 :(得分:1)
要在studentArray中打印值,您可以先将数据作为Datum [],然后通过datum [i] .stringValue()将Datum值转换为String。
Datum[] datumArr = studentArray.getOracleArray();
for (Datum datum: datumArr)
{
System.out.println(datum.stringValue());
}