【发布时间】:2019-10-19 01:56:40
【问题描述】:
我有以下存储过程,我的目标是使用查询“select * from #justTmp”从中返回一个结果集
create procedure spAddPerson
@ID int,
@Name nvarchar(50)
as
begin
create table #justTmp
(
num int primary key,
justName nvarchar(50)
)
if @ID in (select C.ContributorID
from Contributors C)
begin
insert into #justTmp
values (@ID, @Name)
end
select *
from #justTmp
end
这是我的java代码
CallableStatement cstmt = null;
ResultSet rs = null;
cstmt=conn.prepareCall("{ call spAddPerson(?,?) }");
cstmt.setInt(1, 1);
cstmt.setString(2, "MyName");
cstmt.execute();
rs=cstmt.getResultSet();
int first=rs.getInt(1);
String second=rs.getString(2);
由于某种原因,每当我运行它并调用上述存储过程时,我都会收到一个异常提示
语句没有返回结果集
当
rs = cstmt.getResultSet()
代码被执行。
知道如何解决这个问题,以便结果集返回而不是 null 吗?
提前致谢
【问题讨论】:
-
你可以尝试在 proc 的顶部添加 SET NOCOUNT ON
-
@Ian-Fogelman 怎么样?像这样?创建 proc spAddPerson SET NOCOUNT ON?
-
如果您手动运行存储过程(如在 SSMS 中)使用 Java 程序使用的相同
@ID,您会得到结果集吗?此外,在begin之后的行是放置SET NOCOUNT ON的位置。 -
@user212514 是的,我确实在 SSMS 中手动运行结果集
标签: sql sql-server stored-procedures resultset