Исключение SQL Server: "недопустимое имя столбца xxx" при использовании JDBC
Я получаю странную ошибку от драйвера JDBC SQL Server. Он говорит мне, что имя столбца недопустимо, даже если столбец присутствует, правильно назван, и тот же запрос отлично работает при выполнении в SQLServer Management Studio.
ошибка:
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: The column name MarginCall is not valid.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:170)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.findColumn(SQLServerResultSet.java:626)
at com.microsoft.sqlserver.jdbc.SQLServerResultSet.getBigDecimal(SQLServerResultSet.java:2570)
at org.apache.commons.dbcp.DelegatingResultSet.getBigDecimal(DelegatingResultSet.java:305)
...
3 ответов
решена. Это была моя ошибка.
мой запрос использовал предложение " AS " в инструкции select. Я пытался получить значение столбца из набора результатов, используя фактическое имя столбца вместо псевдонима столбца, определенного в предложении AS.
ошибка школьника. Прошу прощения за потраченное время.
большое спасибо Стиву Б. за его предложение использовать ResultSet.getColumnNames(). Хотя фактический вызов метода я использовал набор результатов.getMetaData().getColumnName (columnIndex);
Проверьте регистр вашего имени таблицы. если для параметров сортировки в ms sql server задано значение с учетом регистра, имена таблиц также изменяются.