首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于数据溢出而导致转换失败(数字)

问由于数据溢出而导致转换失败(数字)
EN

Stack Overflow用户
提问于 2013-12-05 00:16:48
回答 2查看 2.3K关注 0票数 2

我试图将数据从.dbf文件移动到Server 2008中的表中,并在多个数字列上得到以下错误:

OLE DB提供程序"MSDASQL“用于链接服务器”(Null)返回消息“多步OLE DB操作生成错误。如果可用,请检查每个OLE DB状态值。没有完成任何工作。MSG7341、级别16、状态2、第1行无法从OLE DB提供程序"MSDASQL“获得列"MSDASQL.apryr”的当前行值(Null)。转换失败,因为数据值溢出了提供程序使用的数据类型。

它只发生在数值列上,而不是在每个数字列上。字符数据很好,并且没有任何日期/时间数据可能会出现任何问题。

下面是我使用的代码示例:

插入表select * OPENROWSET('MSDASQL','DRIVER=Microsoft Visual FoxPro驱动程序;SourceDB=filepath;SourceType=DBF',‘从file.dbf中选择*)

因为dbf文件中的数据是客户数据,所以我被告知我不能手动修复文件中的垃圾数据(假设有),所有事情都必须通过SQL代码来完成。我已经在网上搜索过了,还没有找到解决这个问题的办法。我很感谢你的帮助。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-05 19:19:59

在不了解更多细节的情况下,情况听起来很简单: dbf文件中的数据与Server表中的数据类型不匹配。如果是这样的话,那么您有两个选择:

  1. 更改Server表以容纳dbf文件中的数据。
  2. 不要从导致问题的dbf文件中导入数据。

在选项1中,可以将限制性数值或日期类型字段修改为varchar或nvarchar字段。然后,您可能希望修改可能假定dbf文件中某些数据类型的任何程序,以适应varchar或nvarchar数据。例如,您可以使用某种尝试捕获语言,在允许程序访问数据之前测试数据的转换。

如果您决定使用选项2,则可以将select查询更改为筛选出不符合Server表的字段要求的数据。

祝好运!

票数 0
EN

Stack Overflow用户

发布于 2013-12-05 05:42:49

检查Server表上的字段类型。也许他们中的一些人无法获取您的DBF的BCD值。

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

https://stackoverflow.com/questions/20388927

复制
相关文章

相似问题

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