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)
但我收到错误。
您不能将OUTPUT参数与用户定义函数 (UDF) 一起使用。根据定义,标量函数仅返回一个标量值。
您有两个选择:
1 - 使用参数使其成为存储过程OUTPUT。
2 - 使用返回包含多行的表的表值函数 (TVF)