我正在尝试运行一些更新并最终返回一些我可以使用的resultSet但结果始终为null。我的代码是
PreparedStatement preparedStatement = aConnection.prepareStatement(script);
boolean results = preparedStatement.execute();
如果我的查询是
BEGIN
Declare @MyLog as varchar(max) = '---------------------- '
+ CHAR(10) + CHAR(10)
BEGIN
BEGIN TRAN
UPDATE MPRN SET K4101 = 'N'
select * from HELD_FLOW
COMMIT TRAN
END
END
该语句不返回任何值。但是,如果我的查询是
BEGIN
Declare @MyLog as varchar(max) = '---------------------- '
+ CHAR(10) + CHAR(10)
BEGIN
BEGIN TRAN
select * from HELD_FLOW
UPDATE MPRN SET K4101 = 'N'
COMMIT TRAN
END
END
返回所有值!所以更新顺序和选择事宜!我想先更新一些值,最后返回一些输出,如第一个例子中那样不起作用......
答案 0 :(得分:3)
全部在javadoc:
execute
方法执行SQL语句并指示第一个结果的形式。然后,您必须使用方法getResultSet
或getUpdateCount
来检索结果,并getMoreResults
移动到任何后续结果。
您的过程会返回多个结果,execute
会显示第一个结果的类型。在第一个示例中,第一个结果是更新计数,第二个结果是结果集,因此您分别获得false
和true
。
您应该使用getMoreResults
来处理剩余的结果并找到ResultSet。