gpt4 book ai didi

sql-server - sql过程中返回值为null

转载 作者:行者123 更新时间:2023-12-02 21:44:36 25 4
gpt4 key购买 nike

我正在尝试构建一个返回 nvarchar 值的过程。在我尝试从过程中获取值之前,它似乎工作正常。这是我的程序中的所有代码:

ALTER PROCEDURE [dbo].[_MG_NextInventoryPackNumberForPartNumber]
@sPartNumber NVARCHAR(254) --##PARAM @sPartNumber The part number for which we need to get the new InventoryPackNo
AS
BEGIN

SET NOCOUNT ON;

DECLARE @num INT,
@sNewInventoryPackNum NVARCHAR(254),
@StringNum NVARCHAR(254)
SET @StringNum = (SELECT SUBSTRING(InventoryPackNo, 9, 5) AS pName
FROM InventoryPack
WHERE SUBSTRING(InventoryPackNo, 1, 8) LIKE @sPartNumber)
SET @num = CONVERT(INT, @StringNum)
SET @num = @num + 1
IF @num >= 1 AND @num <= 9
BEGIN
SET @StringNum = CONVERT(NVARCHAR(254), @num)
SET @StringNum = '0000' + @StringNum
END
IF @num >= 10 AND @num <= 99
BEGIN
SET @StringNum = CONVERT(NVARCHAR(254), @num)
SET @StringNum = '000' + @StringNum
END
IF @num >= 100 AND @num <= 999
BEGIN
SET @StringNum = CONVERT(NVARCHAR(254), @num)
SET @StringNum = '00' + @StringNum
END
IF @num >= 1000 AND @num <= 9999
BEGIN
SET @StringNum = CONVERT(NVARCHAR(254), @num)
SET @StringNum = '0' + @StringNum
END
IF @num >= 10000 AND @num <= 99999
BEGIN
SET @StringNum = CONVERT(NVARCHAR(254), @num)
END
IF @num = 100000
BEGIN
SET @StringNum = '00000'
END
SET @sNewInventoryPackNum = @sPartNumber + @StringNum + '10'
PRINT @sNewInventoryPackNum
RETURN @sNewInventoryPackNum
END

这是我尝试调用该过程的方式:

DECLARE @sNuwNum NVARCHAR(254)
EXEC @sNuwNum = _MG_NextInventoryPackNumberForPartNumber '77510002'
PRINT @sNuwNum

该过程应返回此值:775100020000210。但我在屏幕的控制台部分得到的只是:

775100020000210
Msg 248, Level 16, State 1, Procedure _MG_NextInventoryPackNumberForPartNumber, Line 51
The conversion of the nvarchar value '775100020000210' overflowed an int column.
The '_MG_NextInventoryPackNumberForPartNumber' procedure attempted to return a status of NULL, which is not allowed. A status of 0 will be returned instead.
0

我使用的是 SQL Server 2008。我很确定我必须做一些小改变,但是你能告诉我什么吗?

最佳答案

SQL Server 只允许返回 int(不允许返回 bigintvarchar)。而是使用输出参数。

http://www.toadworld.com/platforms/sql-server/w/wiki/10261.stored-procedures-output-parameters-return-values.aspx

关于sql-server - sql过程中返回值为null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19751154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com