访问导入时出现 SSIS 错误
Posted
技术标签:
【中文标题】访问导入时出现 SSIS 错误【英文标题】:SSIS error on access import 【发布时间】:2014-07-02 21:05:03 【问题描述】:当我尝试将 access 2013 数据库导入 sql server 2014 数据库时,我从 SSIS 收到此错误
我使用Microsoft Office 15.0 Access Database Engine OLE DB Provider
作为来源
和SQL Server Native Client 11.0
目的地
TITLE:SQL Server 导入和导出向导
无法连接源组件。
错误 0xc0202009:来源 - 数量 [1]:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E37。
错误 0xc02020e8:源 - 数量 [1]:打开“Amounts
”的行集失败。检查对象是否存在于数据库中。
附加信息:
来自 HRESULT 的异常:0xC02020E8 (Microsoft.SqlServer.DTSPipelineWrap)
错误是针对提供者的?
我只是注意到,当我为数据选择另一个目标(与源相同)时,它会引发类似的错误,但例如另一个行索引 “错误 0xc0202009:来源 - 金额 [43]:SSIS 错误...”
【问题讨论】:
源服务器上是否存在“金额”? 【参考方案1】:存在导入向导错误,当您选择“从一个或多个表中复制数据...”时,自动生成的 sql 表名上有单引号,导致错误消息,[Opening a rowset for "Amounts" failed .检查该对象是否存在于数据库中。]单击“预览”按钮(在“编辑映射”按钮旁边),可以看到sql。
解决方案是通过返回删除表名周围的单引号,选择“编写查询以指定要传输的数据”。现在写你的查询。然后下一步,然后双击 [dbo].[query] 更改为你想要的表名,[dbo][your_table_name]
你必须一张一张地做,我终于弄明白了,让它工作。
【讨论】:
转换时访问列(日期时间)数据值超出范围。这些类型的错误可能是某些行中的一些错误值导致无法复制到目标表。最好的方法是将每个表导出到 excel,然后将 excel 导入到 sql server。我用这种方式测试,没有日期时间转换错误。 在我的情况下,这是用于 SQL Server 的 OLE DB 提供程序引发此错误,实际上它错误地将表名括在引号中。当我试图复制 500 个表时,这个解决方案会不太受欢迎,所以如果我不知道其他什么,我会尝试使用更少错误的东西。【参考方案2】:该错误表明它无法在您的 Access 文件中找到 Amounts 表。确保该表存在并且您没有在表名中指定任何额外的空格。
查看您正在使用的 SQL Server 和 Access 版本,我觉得这可能与驱动程序有关。你能确定你正在使用 -
【讨论】:
我只是在前一步检查了表格列表中的复选框,我没有手写名字所以我不明白错误在哪里 如果您使用的是 SQL Server Native Client 11.0,您是如何指定连接 Access 数据库的服务器名称的? 我使用了 Microsoft Office 15.0 Access Database Engine OLE DB Provider 请查看上面的截图并确认这是您正在使用的驱动程序。 这个驱动只能识别“.mdb”格式的文件,而对于新的扩展名.accdb,我们必须使用MICROSOFT Office 15.0 Access Database Engine OLE DB Provider【参考方案3】:对于现在搜索此内容的任何人,我都会收到此错误,因为列中的一项超出了我数据库中设置的长度。
【讨论】:
【参考方案4】:@hoogw 是对的。但是在 SQL Server 中更改参数以删除引号很容易,并且可以通过在向导中按 Next 来完成导入;而不是编辑单个查询。
在 SqlServer Management Studio 中执行此命令。
SET QUOTED_IDENTIFIER OFF
然后右键数据库->任务->导入数据
【讨论】:
【参考方案5】:首先,打开要导入的 Access 数据库。在数据库工具选项卡上,选择用户和权限,然后选择用户和组的权限:
最后,为每个表启用所有权限:
现在,执行在 SQL Server Management Studio 上导入数据库的过程。这个对我有用;希望对你有帮助!
注意:我安装的 Access 显然使用的是西班牙语,但我希望这些屏幕截图仍然有助于根据我的翻译和图标说明去哪里。
【讨论】:
以上是关于访问导入时出现 SSIS 错误的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 SSIS 包中连接到 DB2 时出现错误 58031?
在 SSIS 中将数据写入 Excel 文件时出现无法解释的错误
访问 VBA - 导入 *.CSV 时出现运行时错误 31519。您无法导入此文件