java - SQL 服务器异常 : "The column name xxx is not valid" when using JDBC

标签 java sql-server jdbc

我从 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/

相关文章:

java - 实时获取 Selenium 性能日志(Java、Kotlin)

java - 结合使用XML Schema和XML到JSON转换是否可行?

C# 避免函数中的 SQL 注入(inject)

java - 在 Java 中执行创建表语句时出错?

java - 多级泛型类型的返回值不能分配给扩展类型

sql-server - MSSQL加载程序集错误

sql-server - 首先匹配密码然后更改密码的存储过程

java - 如何使用 Spring MySQL 和 RowCallbackHandler 管理大型数据集

mysql - 由 : java. io.NotSerializableException : org. apache.spark.SparkContext 引起 - 在 Spark 中使用 JdbcRDD 时

java - 删除 Pane 中特定类型的节点