【问题标题】:java.sql.ARRAY to ArrayList<String[]> OracleCallableStatement [duplicate]java.sql.ARRAY 到 ArrayList<String[]> OracleCallableStatement [重复]
【发布时间】:2014-06-10 06:17:51
【问题描述】:

我从oralce sql in java 收到ARRAY 并将其写入java.sql.ARRAY。该数组是VARRAYOBJECT 类型。如何将此类型转换为 ArrayList?

【问题讨论】:

    标签: java sql arrays oracle object


    【解决方案1】:

    假设你实际上得到了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;
    • 请具体说明您的问题。现在,“转换”是什么意思,该异常来自无效的“转换”;这不是转换。
    猜你喜欢
    • 2013-09-13
    • 2011-02-22
    • 2016-09-07
    • 1970-01-01
    • 2014-01-09
    • 2019-11-28
    • 2015-07-20
    • 2012-05-01
    • 2013-07-29
    相关资源
    最近更新 更多