簡體   English   中英

MsSql 中的存儲過程期望輸出參數作為輸入

[英]Stored Procedure in MsSql expecting output parameter as input

我正在從我的 Java 代碼調用存儲過程。 在存儲過程中進行一些計算后,我正在返回狀態。 下面是存儲過程:

ALTER   PROCEDURE [dbo].[SAMPLE_ENTRIES](@ID INTEGER, @PERIOD_ID INTEGER, @RUN_ID INTEGER, @TYPE CHAR, @RESULT_OUTPUT varchar(100) OUTPUT)
/**Here goes some computation**/
IF @RESULT_OUTPUT IS NULL  
BEGIN   
   set @RESULT_OUTPUT = 'SUCCESS';    
   select @RESULT_OUTPUT as RESULT_OUTPUT;  
END; 

END

正如您在這里看到的,我將 4 個參數傳遞給存儲過程,第 5 個參數是輸出。 但是我收到一個錯誤,下面是錯誤:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Procedure or function 'SAMPLE_ENTRIES' expects parameter '@RESULT_OUTPUT', which was not supplied.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:404)

我是存儲過程的新手。

我在這里先向您的幫助表示感謝。

一個OUTPUT參數仍然是一個輸入參數; 存儲過程沒有“非輸入”參數這樣的東西。 您仍然需要向參數傳遞一個變量,因為一旦 SP 完成, OUTPUT參數的值將分配給該變量。

如果您使用 T-SQL 執行 SP,它將如下所示:

CREATE PROC dbo.MyProc @MyParam int OUTPUT AS
BEGIN

    SET @MyParam = 1;
END;
GO

DECLARE @MyParam int;
EXEC dbo.MyProc @MyParam OUTPUT;

PRINT @MyParam; --1

數據庫<>小提琴

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM