我从Java中的Oracle SQL
获得了一个ARRAY
,并将其写入java.sql.ARRAY
。这个数组是属于OBJECT
的VARRAY
类型。我该如何将此类型转换为ArrayList
?
String[]
数组,您应该能够使用类似以下的方法 -public static List<String[]> getList(ResultSet rs) throws IOException, SQLException {
List<String[]> al = new ArrayList<String[]>();
java.sql.Array z = rs.getArray("my_array_column");
for (Object obj : (Object[])z.getArray()) {
try {
String [] arr = (String[]) obj;
al.add(arr);
} catch (ClassCastException e) {
System.out.println("Object is not a String[]");
e.printStackTrace();
}
}
return al;
}
ResultSet
就可以正常工作,但我正在使用JDBC
和OracleCallableStatement
,并且当我将ARRAY
转换为Object
时,它是可以的,但是当我尝试将其转换为字符串时,我会收到以下错误信息java.lang.ClassCastException: oracle.sql.STRUCT cannot be cast to [Ljava.lang.String;
。 - user2993505