[英]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.