求助!sql2008 nvarchar转numeric(12,2) 提示:消息 8114,级别 16,状态 5,第 1 行

sinat_35338475 2016-06-16 11:33:57
sql2008中 nvarchar转numeric(12,2) 提示:消息 8114,级别 16,状态 5,第 1 行 从数据类型 nvarchar 转换为 numeric 时出错。

表A
金额 nvarchar(50) 允许null

表B
zf numeric(12,2) 允许null

表A里值
0.03
0.01
800
10000
13.56

insert into B (zf) select convert( numeric(12,2),金额 ) a from A
提示:消息 8114,级别 16,状态 5,第 1 行 从数据类型 nvarchar 转换为 numeric 时出错。


请问如何解决?
...全文
779 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_46282326 2020-05-12
  • 打赏
  • 举报
回复
USE StuInfo GO create procedure p_scorename @StudentNumber char(8), @StudentName char(10) OUTPUT, @CourseName char(10) OUTPUT, @StudentScore numeric(5, 1)OUTPUT AS BEGIN SELECT @StudentName = S_Name, @CourseName = C_Name, @StudentScore = Score From T_Student,T_Course,T_Score WHERE @StudentNumber =T_Student.S_number END GO declare @StudentNumber char(8), @StudentName char(10) , @CourseName char(10) , @StudentScore numeric(5, 1) SET @StudentNumber='050201 ' exec p_scorename @StudentNumber,@StudentName OUTPUT,@CourseName OUTPUT,@StudentScore OUTPUT PRINT '学号为'+@StudentNumber+'的学生的'+@CourseName+'课程成绩为:'+@StudentScore 消息 8114,级别 16,状态 5,第 63 行 从数据类型 varchar 转换为 numeric 时出错。这个是什么原因,求助!
中国风 2016-06-17
  • 打赏
  • 举报
回复
查出数据,不需要这批数据时,这样操作 insert into B (zf) select convert( numeric(12,2),金额 ) a from A WHERE ISNUMERIC(金额)=1
中国风 2016-06-17
  • 打赏
  • 举报
回复
SELECT * FROM A WHERE ISNUMERIC(金额)=0--检查不满足格式的数据
卖水果的net 版主 2016-06-17
  • 打赏
  • 举报
回复
len一下,可能存在特殊字符,或空格。
唐诗三百首 2016-06-17
  • 打赏
  • 举报
回复
检查表A中金额是否有非法数据,

select 金额 from 表A where isnumeric(金额)=0
Omg_Skyer 2016-06-17
  • 打赏
  • 举报
回复
检查一下可能是数值类型的字段插入了
''
或空值

34,837

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧