繁体   English   中英

无法从Java中的StoredProc获取Resultset

[英]Unable to fetch Resultset from StoredProc in Java

我们试图在Java中执行存储过程,如下所示,

CREATE PROCEDURE [dbo].[MyProc] 
(
    @input1 varchar(20),
    @input2 varchar(20),
    @responsecode       varchar(10) output
)
AS

//Implementation

SELECT @a,@b,@c,@d;

SELECT @responsecode;

Java代码如下所示,

callableStatement = conn.prepareCall("{call MyProc("2","2"))}");
callableStatement.registerOutParameter(3, Types.VARCHAR);           
callableStatement.registerOutParameter(4,Types.JAVA_OBJECT);

如您所见,我们试图从存储过程中获取两个输出参数,

我们能够在索引3处获得响应代码,但是@ a,@ b,@ c,@ d应该在索引4处作为结果集(可能是我错了)

你能不能给我一些关于获得这种存储过程的结果集的语音。

当我在Microsoft SQL Server Managment Studio中执行此存储过程时,我可以看到两种类型的响应,第一种是结果集,另一种是ResponseCode,如下所示,

在此输入图像描述

您将结果集与输出参数混合在一起。 帖子中的存储过程只有一个输出参数@responsecode

在proc中设置输出参数后,不需要选择输出参数:

create procedure testsp (@param int output)
as
    set @param = 1

GO

declare @param int

exec testsp @param output


select @param

所以删除SELECT @responsecode; ,以及可调用语句中的第4个注册参数。

要获取数据,请迭代executeQuery()返回的结果集。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM