SQL 错误:executeQuery 方法必须返回结果集
Posted
技术标签:
【中文标题】SQL 错误:executeQuery 方法必须返回结果集【英文标题】:SQL Error: The executeQuery method must return a result set 【发布时间】:2013-09-25 07:24:31 【问题描述】:尝试在 SQL Server 中执行以下查询时出现错误 。
with cte
AS
(
SELECT GUID,seq original_seq_no, ROW_NUMBER()
OVER ( PARTITION BY GUID ORDER BY seq) AS new_seq_no
FROM CHK_SEQ
)
update CHK_SEQ
set CHK_SEQ.seq = r.new_seq_no
from cte r
where CHK_SEQ.seq = r.original_seq_no AND CHK_SEQ.GUID= r.GUID;
谁能帮帮我。
【问题讨论】:
我假设您从应用程序代码中执行此操作,并且您必须使用executeNonQuery()
而不是 executeQuery()
(当然取决于语言)。
感谢您的回复。我正在编写此语句以更新表格,因为通过 UI 输入了一些不良数据。我不是通过应用程序代码来做的。
【参考方案1】:
executeQuery 方法必须返回一个结果集
您的查询未返回结果集。是一个更新。改用ExecuteNonQuery
,Java 使用executeUpdate
【讨论】:
感谢您的回复,我正在编写此查询以更新表,因为通过 UI 输入了一些不良数据。我不是通过应用程序代码来做的。 这是一个 Java 错误,也是一个客户端错误。引擎不会抛出 Java 错误。 @user2810293 您使用哪个程序 (UI) 进行数据库管理? 我直接在 SQL developer 中运行脚本,而不是通过任何 java 代码。命令行错误:1 列:0 错误报告:SQL 错误:executeQuery 方法必须返回结果集 从SQL Server Management Studio 运行脚本。让 SQL Developer 将语句作为非查询运行(提出适当的问题,标记为 Oracle 工具集,而不是 SQL 服务器)。添加一个虚拟结果集。选择你的毒药。学会帮助自己。【参考方案2】:从 SELECT 语句返回数据
String sql_select = "Select name from people";
Statement st_1 = connection.createStatement();
ResultSet rs_1 = st_1.executeQuery((sql_select));
只运行一条 UPDATE 语句
String sql_update = "Update people set name = 'Natalie'
Statement st_2 = connection.createStatement();
st_2.executeUpdate(sql_update);
【讨论】:
以上是关于SQL 错误:executeQuery 方法必须返回结果集的主要内容,如果未能解决你的问题,请参考以下文章
Statement.execute(sql) 与 executeUpdate(sql) 和 executeQuery(sql)