在使用spring-jdbc执行使用Oracle编写的存储过程后,我得到 ClassCastException 。
这是给出问题的代码片段,这里的数据是我从过程中得到的List:
for(Object[] obj :data){
}
以下是错误:
java.lang.ClassCastException: oracle.jdbc.driver.OracleResultSetImpl cannot be cast to [Ljava.lang.Object
我认为问题是从程序中获取 OUT 游标后如何在Java代码中使用它,即如何从中提取值?
不幸的是,谷歌搜索并没有帮助我。有人可以帮忙吗?
答案 0 :(得分:0)
data
不是数组的列表(或数组)。它是接口oracle.jdbc.driver.OracleResultSet
的实现。所以你不能使用for-each循环迭代它。
它还实现了ResultSet
,它定义了方法next()
。
因此,您可以使用data
while-loop
while (data.next()){
Object obj = data.getObject(col);
// do somthing with obj
}
方法next()
将光标移动到下一行。
col
可以是列索引或标签。
Here您可以找到有关使用ResultSet
。