1

在使用 spring-jdbc 执行用 Oracle 编写的存储过程后,我得到了ClassCastException 。

这是给出问题的代码片段,这里的数据是我从过程中获得的列表:

for(Object[] obj :data){

}

以下是错误:

java.lang.ClassCastException: oracle.jdbc.driver.OracleResultSetImpl cannot be cast to [Ljava.lang.Object

我认为问题在于从程序中获取OUT游标后如何在 Java 代码中使用它,即如何从中提取值?

不幸的是,谷歌搜索没有帮助我。有人可以帮忙吗?

4

1 回答 1

0

data不是数组的列表(或数组)。它是接口的实现oracle.jdbc.driver.OracleResultSet。因此,您不能使用 for-each 循环对其进行迭代。

它还实现ResultSet,它定义了方法next()data因此,您可以使用 a进行迭代while-loop

while (data.next()){
    Object obj = data.getObject(col);
    // do somthing with obj
}

该方法next()将光标移动到下一行。 col可以是列索引或标签。

在这里你可以找到一个使用的例子ResultSet

于 2013-09-16T12:33:31.020 回答