为什么我的代码产生错误:语句未返回结果集

2022-09-03 03:11:16

我正在从Microsoft SQL Server Studio执行以下查询,该查询工作正常并显示结果:

SELECT *
INTO   #temp_table
FROM   md_criteria_join
WHERE  user_name = 'tecgaw'

UPDATE #temp_table
SET    user_name = 'tec'
WHERE  user_name != 'tec'

SELECT *
FROM   md_criteria_join
WHERE  user_name = 'tec'
   AND view_name NOT IN (SELECT view_name
                         FROM   md_criteria_join
                         WHERE  user_name = 'tecgaw')
UNION
SELECT *
FROM   #temp_table
ORDER  BY view_name,
      user_name,
      crit_usage_seq,
      crit_join_seq 

但是,如果我在Java中执行相同的查询,则会引发异常,指出

该语句未返回结果集。

下面是 Java 代码:

statement = conn.getConnection().createStatement();
resultSet = stmt.executeQuery(sql.toString());

这是因为我不能在一个语句中执行多个SQL查询(即,创建,更新它,然后使用它的select语句)?#temp_table


答案 1

JDBC 对行计数感到困惑。

您需要使用 .SET NOCOUNT ON


答案 2

使用语句进行数据操作(如插入、更新和删除)以及数据检索(select)executeexecuteQuery

我建议您将程序分为两个语句,一个和一个。executeexecuteQuery

如果您不希望这样做,请尝试用分号分隔语句。但是我不确定此操作是否为您提供了结果集。


推荐