Я создал хранимую процедуру, sql в хранимой процедуре - это динамическая c кросс-таблица, поэтому имя столбца неизвестно до запуска хранимой процедуры, а теперь в спящем режиме я использую ProcedureCall.getOutputs (), и я проверяю возвращаемый ResultSetOutput и обнаруживаю, что имя столбца не возвращается, любой метод для извлечения имени столбца из результата хранимой процедуры?
боковой код java похож на следующий
ProcedureOutputs outputs = call.getOutputs();
do {
Output output = outputs.getCurrent();
List<Object[]> results;
if (output!=null) {
if (output.isResultSet()) {
results = ( (ResultSetOutput) output ).getResultList();
for (Object[] row:results) {
System.out.println("Arrays.toString(row)="+Arrays.toString(row));
}
}else {
UpdateCountOutput updateCountOutput = (UpdateCountOutput)output;
System.out.println("update count = " +updateCountOutput.getUpdateCount());
}
}
}while (outputs.goToNext());
, а вывод консоли выглядит следующим образом:
18: 22: 28,425 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (row) = [1, ОБЯЗАТЕЛЬНОЕ ОТСТУПЛЕНИЕ, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1]
18: 22: 41,712 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (row) = [1 , Смерть, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]
18: 22: 46,254 ИНФОРМАЦИЯ [stdout] (задача по умолчанию-3) Arrays.toString (строка) = [1, ОТКАЗ, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2]