如何使用输出参数创建函数?

时间:2014-03-17 12:20:32

标签: sql-server tsql sql-server-2012

我正在将代码从pl / sql重写为tsql,并希望在tsql中创建一个带有输出参数的函数,如下所示

CREATE FUNCTION [CALC_EXZ].[CALC_AZ_RESIST_FULL]
(
    @i_ukz_key        NUMERIC(20),
    @c_err_message    VARCHAR(1000) OUTPUT,
    @c_recommendation VARCHAR(1000) OUTPUT
)
RETURNS NUMERIC(20,6) 
AS 

BEGIN
DECLARE @result NUMERIC(20,6)


    EXECUTE [DB_LIB].[CALC_EXZ].[CALC_AZ_RESIST_FULL]
    @i_ukz_key, 
    @c_err_message    OUTPUT, 
    @c_recommendation OUTPUT, 
    @result           OUTPUT; 

    IF @result=-1 AND @c_err_message IS NULL 
    SET @result=NULL;   

    RETURN @result
END

但我得到错误。

1 个答案:

答案 0 :(得分:2)

您不能将OUTPUT参数与用户定义的函数(UDF)一起使用。根据定义,标量函数只返回一个标量值。

您有两种选择:

1 - 使用OUTPUT参数将其设为存储过程 2 - 使用表值函数(TVF)返回包含多行的表