【发布时间】:2013-12-05 00:16:48
【问题描述】:
我正在尝试将数据从 .dbf 文件移动到 SQL Server 2008 中的表中,并且在多个数字列上出现以下错误:
链接服务器“(null)”的 OLE DB 提供程序“MSDASQL”返回消息“多步 OLE DB 操作生成错误。检查每个 OLE DB 状态值(如果可用)。没有完成任何工作。”。 消息 7341,第 16 层,状态 2,第 1 行 无法从链接服务器“(null)”的 OLE DB 提供程序“MSDASQL”获取列“[MSDASQL].apryr”的当前行值。转换失败,因为数据值溢出了提供者使用的数据类型。
它只发生在数字列上,而不是在每个数字列上。字符数据很好,没有日期/时间数据会导致任何问题。
这是我正在使用的代码示例:
插入 [table] select * from OPENROWSET('MSDASQL', 'DRIVER=Microsoft Visual FoxPro 驱动程序; SourceDB=[文件路径]; 源类型=DBF', '选择 * 来自[文件].dbf)
由于 dbf 文件中的数据是客户数据,我被告知无法手动修复文件中的垃圾数据(假设有),一切都必须通过 SQL 代码完成。我在互联网上搜索并没有真正找到解决这个问题的方法。如有任何帮助,我将不胜感激。
谢谢。
【问题讨论】:
标签: sql sql-server dbf openrowset