ssis excel源无法在设计时获取连接管理器

Posted

技术标签:

【中文标题】ssis excel源无法在设计时获取连接管理器【英文标题】:ssis excel source cannot acquire connection manager at DESIGN time 【发布时间】:2010-09-28 14:04:27 【问题描述】:

我有一个 SSIS(超级)包,它由几个(大约)40 个包组成,每个包都有几个数据流任务,其中大多数将一些 excel 数据加载到 sqlserver 数据库。所以我有几个 excel 源连接管理器,每个 excel 文件一个。 直到最近,这一直很好用:我必须在我的一个包中更改一个 excel 源(在 excel 中添加了一个列,该列必须加载到目标 sqlserver 表中)但我无法在 SSIS 中编辑 excel 源:当我单击“列”,出现错误框“DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER”。所以这是一个设计时问题,而不是运行时问题。我在***上看到过这样的问题,但没有答案。有人有想法吗?

我已经在我的机器上删除了 office 2007 并重新安装了 office 2003,但这没有帮助 它与 64 位模式无关,我在这里读到过 ssis 中的连接管理器数量是否有限制? 我的大多数连接管理器都是通过复制/粘贴创建的,因此它们具有相同的 ID,尽管它们指向不同的 excel 文件。这可能是个问题吗?

我还应该提到,包运行没有任何问题,所以它只是“编辑/更改”不起作用的包。目前,我通过禁用应该更改的数据流并将其替换为硬编码将数据从 excel 插入目标表的 sql 语句来规避这个问题。 也许还有一件有趣的事情要提:我可以创建一个新包并添加和更改 excel 源代码而不会出现问题,但是当我尝试将这个 excel 源代码复制到我的包中时,我无法对其进行编辑。

【问题讨论】:

【参考方案1】:

您是否尝试检查源连接上的高级选项? 右键单击组件并选择“显示高级编辑器...” 选择列映射选项卡并按刷新按钮。

这应该指出 XLS 连接有一些额外的列,或者您指向的文件无法在运行时进行预验证。

M.

【讨论】:

不幸的是,当我在高级编辑器上转到列映射时,我收到与上述相同的错误(无法从连接管理器获取连接) 您的连接管理器是否指向有效的 XLS?当您尝试此操作时,该文件是否已关闭? 这是一个有效的 xls 并且已关闭。包运行没有问题,我只是无法更改 excel 源。 也许源代码已经损坏了?您是否尝试过删除它并添加一个新的? 绝妙提示!我刚刚尝试的非常愚蠢:我将excel文件剪切并粘贴到我的桌面上。然后我在我的包中收到错误,即 excel 不存在。我将它粘贴回原来的位置,现在我可以在我的包中再次编辑 excel 源代码。我不知道如何解释这一点,但它有效。非常感谢,华伦天奴!!!【参考方案2】:

我不确定这是否可行,但请尝试 BIDS/VS 中 SSIS 菜单中的 脱机工作 选项。这应该做的是在您编辑组件之前验证连接。它可能会让你进入组件。

【讨论】:

你是对的,当你离线工作时组件没有被验证,但是一旦你想编辑组件,你就会收到一条错误消息,你必须取消选中“离线工作”能够编辑组件。

以上是关于ssis excel源无法在设计时获取连接管理器的主要内容,如果未能解决你的问题,请参考以下文章

无法在 SSIS 2017 中的 excel 连接管理器上使用表达式

Odata:无法从运行时连接管理器获取托管连接

SSIS - 强制 Excel 连接

如何修复“[OData Source [56]] 错误:无法从运行时连接管理器获取托管连接。” SSIS中的错误?

SSIS Excel连接“无法加载任何表或视图”

SSIS Excel 连接管理器:文件只能在选择了错误的 Excel 版本时才能读取