我调用这样的存储过程:
EXEC @Varbinary = [Procedure] @Param1='test',@Param2='test',@OutputParam = @Output OUTPUT
这适用于此程序:
ALTER PROCEDURE [Procedure]
@Param1 VARCHAR(50), @Param2 VARCHAR(32), @Output VARBINARY(128) OUTPUT
AS
BEGIN
SET NOCOUNT ON;
SET @Param1 += @Param2
SET @Output = CONVERT(VARBINARY(128),HASHBYTES('SHA2_512',@Param1),2)
--SELECT @Output
RETURN
END
GO
返回0x00000000。如果我直接从过程中选择一个值,它就会按预期工作。
答案 0 :(得分:0)
你的代码一切都很好 -
ALTER PROCEDURE usp_Proc
(
@Param1 VARCHAR(50),
@Param2 VARCHAR(32),
@OutputParam VARBINARY(128) OUTPUT
)
AS BEGIN
SET NOCOUNT ON;
SET @OutputParam = CONVERT(VARBINARY(128), HASHBYTES('SHA2_512', @Param1+@Param2),2)
SELECT @OutputParam
END
GO
DECLARE @Output VARBINARY(128)
EXEC usp_Proc @Param1='test', @Param2='test', @OutputParam = @Output OUTPUT
SELECT @Output
输出 -
----------------------------------------------
0x125D6D03B32C84D492747F79CF0BF6E179D287F34138
----------------------------------------------
0x125D6D03B32C84D492747F79CF0BF6E179D287F34138