[英]Using count sql query giving “Invalid column name” error in Java Program
How can i use this sql query in Java Program. 我如何在Java程序中使用此sql查询。
String SelectSQL = "SELECT (CASE WHEN cnt >= 1
THEN 'True'
ELSE 'False'
END) result_str
FROM ( SELECT COUNT(*) cnt FROM event WHERE externaleventid ='1256294' )";
I am using Preparatory statement to pass the externaleventid. 我正在使用Preparatory语句来传递externaleventid。 Other query works fine when I am using column name but when I don't use column name I am getting the error "Invalid column name" When I run this query in SQL developer it executes successfully.
当我使用列名时,其他查询工作正常,但是当我不使用列名时,出现错误“无效的列名”。在SQL Developer中运行此查询时,它会成功执行。
Added java code: 添加了Java代码:
String query = " SELECT (CASE WHEN COUNT(*) >= 1 THEN 'True' ELSE 'False' END) AS result_str FROM event WHERE externaleventid = ?";
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,"1256294");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
String externaleventid = rs.getString("DISPLAYNAME");
System.out.println("externaleventid : " + externaleventid);
}
You should write 你应该写
"SELECT (CASE WHEN cnt >= 1
THEN 'True'
ELSE 'False'
END) AS result_str
FROM ( SELECT COUNT(*) AS cnt FROM event WHERE externaleventid ='1256294' )";
instead of 代替
"SELECT (CASE WHEN cnt >= 1
THEN 'True'
ELSE 'False'
END) result_str
FROM ( SELECT COUNT(*) cnt FROM event WHERE externaleventid ='1256294' )";
You are trying to get the result from a column named DISPLAYNAME
which does not exist in your query. 您正在尝试从查询中不存在的名为
DISPLAYNAME
的列中获取结果。 One option is to ignore the name and retrieve by index: 一种选择是忽略名称并按索引检索:
rs.getString(1);
Another is to retrieve by name, but use the name of the alias that was on the query: 另一种方法是按名称检索,但要使用查询中使用的别名的名称:
rs.getString("result_str");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.