首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据类型从varchar转换为数值时出错

将数据类型从varchar转换为数值时出错
EN

Stack Overflow用户
提问于 2015-05-14 13:25:19
回答 1查看 405关注 0票数 1

我有以下每晚运行的更新查询,它将SQL空间数据库( GIS )中的GIS信息更新为另一个数据库(LIVE)。这个更新已经几个月没有问题了,今天突然失败了。

“将数据类型从varchar转换为数值时出错。”

代码语言:javascript
复制
update LIVE.dbo.PT001
Set
    LIVE.dbo.pt001.dlonglegal_1 = Left(GIS.dbo.parcel.quartersection,2),
    LIVE.dbo.pt001.dlonglegal_2 = SUBSTRING(GIS.dbo.parcel.quartersection,3,CHARINDEX('-',GIS.dbo.parcel.quartersection+'-')-3),
    LIVE.dbo.pt001.dlonglegal_3 = SUBSTRING(GIS.dbo.parcel.quartersection,CHARINDEX('-',GIS.dbo.parcel.quartersection+'-')+1,1),
    LIVE.dbo.pt001.dlonglegal_4 = SUBSTRING(GIS.dbo.parcel.quartersection,CHARINDEX('-',GIS.dbo.parcel.quartersection+'-')+3,1),
    LIVE.dbo.pt001.dlonglegal_5 = right(GIS.dbo.parcel.quartersection,1)
From GIS.dbo.parcel inner Join
LIVE.dbo.PT001 on GIS.dbo.parcel.roll = LIVE.dbo.pt001.dROLLNMBR
where GIS.dbo.parcel.roll = LIVE.dbo.PT001.drollnmbr AND
GIS.dbo.parcel.quartersection is not null

四分之一部分信息以nvarchar(30)的形式存储在包裹表中,格式如下:

代码语言:javascript
复制
NW12-5-6E

在目标表中,它将存储为char(15),如下所示:

代码语言:javascript
复制
dlonglegal_1 = NW
dlonglegal_2 = 12
dlonglegal_3 = 5
dlonglegal_4 = 6
dlonglegal_5 = E

我尝试过将数字字段转换为数字字段,但没有成功。我感到困惑的是,为什么更新在今天就开始失败了,因为数据库结构已经很长一段时间没有改变了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-14 19:38:44

正如artm所说,我认为最有可能的情况是数据有问题,但一切都是正确的。我分别运行了每一列的更新,并且对每一列都有效。然后我运行了完整的查询,它没有问题地完成了。我不知道最后的问题是什么,但显然它似乎又起作用了。我感谢你的意见。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30238564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档