java中的存储过程

时间:2017-09-08 18:26:35

标签: java sql jdbc

我有一个存储过程导致输出作为集合对象,如下所示。我能够提取li的值,但值曼谷和加拿大作为一个对象返回,当我打印时,我得到{{1}作为输出。

示例:

.navBar li {
display: inline-block;
float: left;
background:transparent;
margin-right:5px;
    }

我尝试过以下代码:

[1,America,AA]

输出:

oracle.sql.ARRAY

1 个答案:

答案 0 :(得分:1)

最后一个属性显然是oracle.sql.ARRAY数据类型,因此您需要获取数组并单独处理它。

if(Statement.getObject(Index)!=null){
    Data= (Object[]) ((Array) Statement.getObject(Index)).getArray();
    Object[] Data=null;
    Data= (Object[]) ((Array) Statement.getObject(Index)).getArray();
    int i=0;
    Struct row = (Struct) Data[i]; 
    for (Object attribute : row.getAttributes()){
        if (attribute instanceof oracle.sql.Array){
            // process the array, I didn't check this code YMMV
            String[] countries = (String[])attribute.getArray();
            for (String country : countries){
                System.out.println(country);
            }
        } else {
            System.out.println(attribute.toString());
        }
    }
}