无法从从另一个 SP 调用的 SP 获取输出参数
cannot get the output parameter from an SP called from another SP
我试图从另一个存储过程调用的存储过程中获取输出参数值,但没有成功。我正在分别设置输出参数,但它 returns NULL
.
ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
@out_vchMsg NVARCHAR(30) OUTPUT,
@out_vchCode NVARCHAR(30) OUTPUT
AS
DECLARE @v_nSysErrorNum INTEGER
EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @out_vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @out_vchMsg OUTPUT
输出参数@out_vchCode
始终为空,但存储过程usp_get_next_value_dummy
填充了@out_vchCode
。我不明白为什么上面 returns null。
谁能给我个主意?
您需要将变量限定在您的过程范围内。它们被定义为输出,但您随后试图将它们传递给另一个过程。我不是嵌套过程的超级粉丝,因为维护可能会变得非常丑陋,但这里是你如何做到这一点的。
ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
@out_vchMsg NVARCHAR(30) OUTPUT,
@out_vchCode NVARCHAR(30) OUTPUT
AS
DECLARE @v_nSysErrorNum INTEGER
, @vchCode NVARCHAR(30)
, @vchMsg NVARCHAR(30)
EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @vchMsg OUTPUT
SELECT @out_vchCode = @vchCode
, @out_vchMsg = @vchMsg
我试图从另一个存储过程调用的存储过程中获取输出参数值,但没有成功。我正在分别设置输出参数,但它 returns NULL
.
ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
@out_vchMsg NVARCHAR(30) OUTPUT,
@out_vchCode NVARCHAR(30) OUTPUT
AS
DECLARE @v_nSysErrorNum INTEGER
EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @out_vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @out_vchMsg OUTPUT
输出参数@out_vchCode
始终为空,但存储过程usp_get_next_value_dummy
填充了@out_vchCode
。我不明白为什么上面 returns null。
谁能给我个主意?
您需要将变量限定在您的过程范围内。它们被定义为输出,但您随后试图将它们传递给另一个过程。我不是嵌套过程的超级粉丝,因为维护可能会变得非常丑陋,但这里是你如何做到这一点的。
ALTER PROCEDURE [dbo].[btn_usp_label_next_lp]
@out_vchMsg NVARCHAR(30) OUTPUT,
@out_vchCode NVARCHAR(30) OUTPUT
AS
DECLARE @v_nSysErrorNum INTEGER
, @vchCode NVARCHAR(30)
, @vchMsg NVARCHAR(30)
EXEC usp_get_next_value_dummy 'BTN_DUMMY_LP', @vchCode OUTPUT, @v_nSysErrorNum OUTPUT, @vchMsg OUTPUT
SELECT @out_vchCode = @vchCode
, @out_vchMsg = @vchMsg