我很感激这里有第三只眼睛。我有一个要执行的存储过程,但当我使用以下值执行它时,收到将数据类型varchar转换为numeric时出现错误消息
EXECUTE packaging
@ID out, -- uniqueidentifier
@ProductID, --uniqueidentifier
@PackagingIN, --numeric(14,0)
@BarCodeInd, --nchar(1)
@GrossWeightperPack, --numeric(14,0)
@UMPID, --uniqueidentifier
@Height, --numeric(8,0)
@UMPID1, --uniqueidentifier
@Width, --numeric(8,0)
@UMPID2, -- uniqueidentifier
@Length, --numeric(8,0)
@UMPID3, --uniqueidentifier
1, --int
1, --int
@statusid,
@counter out --int执行打包'0904AC11-7B0D-4326-A67B-49639DF6672C','57925472-5F79-424E-806A-47F8B73DAE02',57582682639272,'','',null,'',null,'',1,1,'B5266344-286E-46FE-91D1-35DEEDCD6063',@counter
发布于 2012-10-08 22:09:25
有几个数字参数被传递为空字符串'‘
传递一个数值,就像您对PackagingIN参数所做的那样,或者传递null
示例:
Execute packaging '0904AC11-7B0D-4326-A67B-49639DF6672C', '57925472-5F79-424E-806A-47F8B73DAE02', 57582682639272, '', null, null, null, null, null,null, null,null,null, 1, 1, 'B5266344-286E-46FE-91D1-35DEEDCD6063', @counter避免传递空字符串(除非需要),因为它们会使您在代码行的某处出错
发布于 2019-08-20 22:39:34
请注意,对于问题主题:“将数据类型numeric转换为numeric时出错”。(即使问题正文不同),使用与数字的precision不匹配的C# decimal也可能导致错误。
例如,在类型为NUMERIC(5,2)的情况下,将值为125.346的decimal作为参数传递将失败,并显示上述错误消息。
发布于 2021-01-24 15:24:24
您可能正在尝试从已定义的模板中插入更大的数字,例如,您正在运行
declare **@number numeric (9)**
exec get_next_number @number OUTPUT虽然该过程是这样定义的
procedure dbo.get_next_number **@number numeric(10)**=null OUTPUThttps://stackoverflow.com/questions/12780387
复制相似问题