2013-09-16 3 views
0

Я получаю ClassCastException после выполнения хранимой процедуры, написанной в Oracle, используя spring-jdbc.ClassCastException после выполнения Хранимой процедуры в java

Вот фрагмент кода, который дает вопрос, здесь данных является список, который я получаю от процедуры:

for(Object[] obj :data){ 

} 

Ниже ошибка:

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

Я думаю, что вопрос после того, как получение OUT курсор из процедуры Как использовать его в Java-коде, т.е. как извлечь из него значения?

К сожалению, поисковая система не помогла мне. Может кто-нибудь, пожалуйста, помогите?

+5

Вы пытаетесь передать объект набора результатов в массив объектов. Без кода, это все, что можно сказать. –

+3

Включая фрагмент кода, который дал ошибку, было бы более полезным для понимания исключения! – SudoRahul

+0

Я обновил вопрос. Я думаю, что проблема заключается в том, чтобы вытащить курсор из процедуры. Как использовать его? – Anand

ответ

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.

Смежные вопросы