2014-11-21 4 views
1

я получаю список StudentIds как List<String>не печатает значения oracle.sql.ARRAY

Я конвертировать что к String[] позже,

String[] studentIdArray = null; 
if (list!= null) { // StudentList 
studentIdArray = list.toArray(new String[list.size()]); // printed studentIdArray and print the values. its fine 
} 

Затем объявлен arrayDescriptor, чтобы отобразить Java String[] к PLSQL таблицы RAW, который определяется как STUDENT_ID_TYPE

ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("STUDENT_ID_TYPE", connection); 

Теперь я получаю oracle.sql.ARRAY из него,

ARRAY studentArray = new ARRAY(arrayDescriptor, connection, studentIdArray); 

Я не смог найти, как вывести значения в studentArray, хотя при печати studentArray.length(), он возвращается как 1, что я чувствую себя правильно. BUt Когда этот массив передается моей процедуре PLSQL, я получаю настраиваемое исключение.

редактировать: когда я использую дамп(), он просто сваливает в качестве элемента [0] = [B @ 438620c7

ответ

1

Чтобы напечатать значения в studentArray вы могли бы сначала данные в Datum [], а затем преобразовать Datum значение для String по datum [i] .stringValue().

Datum[] datumArr = studentArray.getOracleArray(); 

for (Datum datum: datumArr) 
{ 
    System.out.println(datum.stringValue()); 
} 
+0

Цените, что будет проверять и пометить как ответ – spiderman

+0

давайте посмотрим, как это работает :) – Willmore

+0

Это работает как шарм, здорово! Спасибо @Marius Žilėnas – spiderman

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