如何创建带有输出参数的函数?

ade*_*lak -1 t-sql sql-server 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
Run Code Online (Sandbox Code Playgroud)

但我收到错误。

JNK*_*JNK 5

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

您有两个选择:

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