我正在将代码从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
但我得到错误。
答案 0 :(得分:2)
您不能将OUTPUT
参数与用户定义的函数(UDF)一起使用。根据定义,标量函数只返回一个标量值。
您有两种选择:
1 - 使用OUTPUT
参数将其设为存储过程
2 - 使用表值函数(TVF)返回包含多行的表