【发布时间】:2014-05-02 01:33:20
【问题描述】:
有人可以帮我吗?我有一个存储过程,当我运行 SP 时它没有返回任何值
运行方式 - 所以在我的 java 代码中我正在做(exec TestSP(?) 设置 1 个输入参数:
在 MS SQL 控制台上运行为:
exec TestSP @ErrorDescription=''
在这两个方面我都没有得到任何回报。
我没有得到任何输出,只是命令成功完成,知道我需要改变什么来使这个存储过程返回一个值吗?
--TestSP
USE [TESTDB]
GO
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[Testtbl] @ErrorDescription VARCHAR(40) OUTPUT
AS
DECLARE @status INT
SET @status = (
SELECT status
FROM Testtbl
)
IF @status = 0
SET @ErrorDescription = 'OK'
ELSE
SET @ErrorDescription = 'FAIL'
RETURN @status
我需要在 java 级别进行更改以使其正常工作或 SP 需要更改吗?
Java:
stmt = connection.prepareCall(sql);
stmt.setString(1, errorDesc);
stmt.registerOutParameter(2, java.sql.Types.VARCHAR);
stmt.executeUpdate();
String result = stmt.getString(2);
System.outprintln("Result is: "+result);
需要在 java 级别进行哪些更改才能使其工作,我没有得到变量“result”的结果?
【问题讨论】:
-
您的问题是接收 status 值、错误描述 还是两者都有?
-
我的问题是返回状态值。谢谢
标签: java sql stored-procedures jdbc mssql-jdbc