有一个数据流任务,由excel源和sql目的地组成。当单独执行数据流任务时它运行良好。如果我执行此数据流在每个循环的a内,它会给出以下错误
[Excel Source [17]]错误:SSIS错误代码DTS_E_OLEDBERROR。一个OLE 发生了DB错误。错误代码:0x80040E37。
[Excel来源[17]]错误:打开"'工作表数据的行集$'" 失败。检查数据库中是否存在该对象。
[SSIS.Pipeline]错误:" Excel来源"验证失败并返回 验证状态" VS_ISBROKEN"。
有没有人有类似的问题!?
答案 0 :(得分:6)
SSIS尝试在Excel文件中打开的工作表不存在。
答案 1 :(得分:2)
我遇到了同样的问题。而我发现原因是只读属性。
当我在数据流任务任务之前添加:文件系统任务,其中我设置了Excel属性ReadOnly=False
它开始工作。
以下是一些屏幕。我希望它可以帮助别人。 :)
答案 2 :(得分:2)
在我的情况下,此错误是由于Excel书籍的名称管理器中被引用的命名范围被删除。
答案 3 :(得分:0)
我不知道这对使用Excel source 组件是否有帮助,但是万一它有用:
要解决此问题,我只需要进入数据流任务,进入Excel组件(原始海报的源组件,我的目标组件),然后在第3个下拉列表中重新选择“名称Excel工作表的内容:“然后,程序包运行无误。
我猜想SSIS导入和导出向导最初生成的选项卡名称(与表名称匹配的选项卡名称)太长了:我的“创建表”步骤(Prep SQL任务)继续显示那些长表名,但是在电子表格中,标签名被截断了,在数据流任务的Excel组件中,我必须选择以“ $”结尾的电子表格标签名。
(请注意我的最初答案:
就我而言,我最初认为这是映射问题(问题消失后,重新映射是我所做的事情之一),但是...
当它再次发生时,我发现唯一必要的步骤就是我所做的 other 事情-重新选择Excel电子表格名称。)