Я немного запутался с моим новым SQL-запросом, использующим объединение.
Я запрашиваю свою базу данных firebird в java-приложении, используя jaybird 2.2.8. Обычно я анализирую свой ResultSet, используя метаданные
ResultSetMetaData metaData = resultSet.getMetaData();
и цикл по столбцам
for (int i = 1; i <= metaData.getColumnCount(); i++) {
columnName = metaData.getColumnName(i);
int columnType = metaData.getColumnType(i);
switch (columnType) { ...
Это работало довольно хорошо, пока я не начал использовать Union в своем SQL-запросе. Теперь метод
metaData.getColumnName(i)
возвращает пустую строку вместо имени столбца — тип столбца допустим.
Когда я использую SQL-запрос без Union, все работает так, как ожидалось, и когда я тестирую свой запрос в IBExpert, все столбцы имеют допустимое имя.
Есть идеи, что не так? У кого-нибудь есть обходной путь?
Кстати. ResultSet выглядит довольно хорошо в отладчике eclipse
getColumnLabel(i)
. В качестве обходного пути вы можете попробовать явные метки столбцов:... AS col1, ... AS col2
. - person Joop Eggen   schedule 20.08.2015columnName
, только сcolumnLabel
- person Mark Rotteveel   schedule 20.08.2015