gpt4 book ai didi

sql - 如何解决SQL Server存储过程中字符串或二进制数据被截断的问题

转载 作者:行者123 更新时间:2023-12-02 03:55:11 25 4
gpt4 key购买 nike

错误信息:

Msg 8152, Level 16, State 14, Procedure IR_STK_VAL_FIFO, Line 74
String or binary data would be truncated.

我正在运行并导致错误的查询:

EXEC [dbo].[IR_STK_VAL_FIFO] N'01-Jan-2012', N'25-May-2017', 0, '', 0, '', 0, '', 0, 0, '', N'S', N'05-Jul-2012', 0

我有一个存储过程,其中大约在此表的最后一行出现错误:

CREATE TABLE #PAE_TR_ROWS
(
productId varchar(7),
docType varchar(3),
docId int,
docDate SMALLDATETIME,
qtyIn int,
qtyOut int,
rate decimal(12,4),
sortOrder varchar(255),
appRate decimal(12,4)
)

在上表中插入:

INSERT INTO #PAE_TR_ROWS (productId, docType, docId, docDate, qtyIn, qtyOut, rate, sortOrder, appRate)
VALUES (@new_productId, @new_docType, @new_docId, @new_docDate, 0, @balanceQty, @new_rate, @new_sortOrder, @rate)

最佳答案

错误“字符串或二进制数据将被截断”意味着您正在尝试插入大于某一列可以接受的数据。

发生这种情况是因为您传递给 EXEC 命令的值的顺序不正确

例如,您传递的第一个值是这个日期:

 EXEC [dbo].[IR_STK_VAL_FIFO] N'01-Jan-2012',N'25-May-2017',0...

在命令中,它被声明为productId:


INSERT INTO #PAE_TR_ROWS(productId,...
VALUES(@new_productId,...

但是,productId 列仅为 varchar(7),因此值 01-Jan-2012 超出了该大小。这就是您收到此错误的原因。

关于sql - 如何解决SQL Server存储过程中字符串或二进制数据被截断的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44172472/

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