作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我从 SQL Server JDBC 驱动程序中收到一个奇怪的错误。它告诉我列名无效,即使该列存在,正确命名并且相同的查询在 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)
...
最佳答案
问题解决了。这是我的一个简单错误。
我的查询在 select 语句中使用了“AS”子句。我试图使用实际的列名而不是 AS 子句中定义的列别名从 ResultSet 中检索列值。
小学生错误。抱歉浪费时间。
非常感谢 Steve B. 建议使用 ResultSet.getColumnNames()。尽管我使用的实际方法调用是 ResultSet.getMetaData().getColumnName(columnIndex);
关于java - SQL 服务器异常 : "The column name xxx is not valid" when using JDBC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2110757/
我是一名优秀的程序员,十分优秀!