【发布时间】:2014-06-10 06:17:51
【问题描述】:
我从oralce sql in java 收到ARRAY 并将其写入java.sql.ARRAY。该数组是VARRAY 的OBJECT 类型。如何将此类型转换为 ArrayList?
【问题讨论】:
标签: java sql arrays oracle object
我从oralce sql in java 收到ARRAY 并将其写入java.sql.ARRAY。该数组是VARRAY 的OBJECT 类型。如何将此类型转换为 ArrayList?
【问题讨论】:
标签: java sql arrays oracle object
假设你实际上得到了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 and OracleCallableStatement 并且当我将 ARRAY 转换为 Object 时,它可以,但是当我尝试将其转换为字符串时我收到一个错误java.lang.ClassCastException: oracle.sql.STRUCT cannot be cast to [Ljava.lang.String;