簡體   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