java - 列名无效 - 错误

标签 java sql-server jdbc

我在从结果集中获取值时遇到此错误。

Error : com.microsoft.sqlserver.jdbc.SQLServerException: The column name company.short_name is not valid

案例 1:

select company.short_Name,location_name from company,location;

此查询在 SQL Server 上执行良好,但在我的 java 代码中,当我尝试检索像 resultset.getString("company.short_name"); 这样的值时,出现上述错误。

案例 2:

select company.short_Name short_name,location_name from company,location;

并检索像 resultset.getString("short_name"); 这样的值,它在数据库 MySQL 和 MSSQL 上都能正常工作。

我正在将我的数据库从 MySQL 迁移到 MSSQL。上述情况 1 在 MySQL 中工作正常,但为什么它在 MSSQL 中不起作用?

最佳答案

resultset.getString("company.short_name"); 这里是错误的。尝试在您的应用程序中获取数据时无需指定完全限定名称。只需指定列名称,例如 resultset.getString("short_name");

因为即使您说 select company.short_Name ... 查询列名称为 short_Name 因为这是在表架构中定义的。

如果两个表具有相同的列,这可能会导致歧义,请为列提供别名,例如

select company.short_Name as company_shortname,
       location.short_Name as location_shortname,
location.location_name from company,location;

关于java - 列名无效 - 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31921482/

相关文章:

java - 为什么Java中没有SortedList?

c# - 从 ASP.NET 文本框向 SQL 数据库写入数据

sql-server - 将依赖项转换为指向 View 而不是 Table

带有月份和年份的 SQL 数据透视表

java - 在 Android Studio 中与 JDBC 斗争

java - eclipse android 通过使用 HTTP 将 java 值传递给 php

java - 获取异常 : java. lang.IllegalArgumentException:无法添加到布局:约束必须是字符串(或 null)

java - 从主类调用参数到另一个文件中的另一个文件(1个包)

java - 如何在数据库表中插入每天唯一的登录计数的单独行

java - CREATE TABLE 的 SQL 语法错误