无法从存储过程返回varbinary数据类型

时间:2016-03-17 09:59:36

标签: sql-server stored-procedures varbinary

我调用这样的存储过程:

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。如果我直接从过程中选择一个值,它就会按预期工作。

1 个答案:

答案 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