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したがって、次を使用して反復処理できますwhile-loop

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

このメソッドnext()は、カーソルを次の行に移動します。 col列のインデックスまたはラベルのいずれかです。

を使用した例をここで見つけることができますResultSet

于 2013-09-16T12:33:31.020 に答える