sql-server - SSIS 包 - 在 Excel 连接中保留相同的连接属性
问题描述
我正在使用 SSDT 2017。有 3 个数据流任务(它们使用优先约束连接)将数据从 Excel 加载到数据库表中。当我单独运行每个任务时,它显示为成功,但是当我运行整个包时,它显示为已完成,任务上没有任何绿色勾号,这意味着任务没有被执行。将 Excel 的 RetainSameConnection 属性更改为 True 后,所有任务都已成功完成。
我在早期版本中没有看到这种行为。这是 2017 版本的新变化还是我遗漏了什么?
解决方案
试图找出问题所在
根据您正在使用的问题和评论,3 数据流任务包含 3 个使用相同连接管理器的 Excel 源组件。
在验证阶段的包执行开始时,每个尝试的组件都必须从连接管理器获取连接以读取元数据并尝试保持此连接打开,直到它必须执行并且因为有很多文件尝试打开相同的连接会导致问题。
使用RetainSameConnection
该包时,运行一次acquireconnection方法并多次使用它,问题就解决了。
可以尝试的东西
尝试将所有数据流任务的Delay Validation
属性更改为True
,并将ValidateExternalMetadata
属性更改False
为Excel Source
,如果仅出于验证目的获取连接,则可能会解决问题。如果它不起作用,则意味着即使数据流任务执行尚未开始,也会调用获取连接方法以锁定文件以进行读取。
推荐阅读
- javascript - 过滤数据列表输入
- c++ - 在 Win32 中捕获鼠标光标并应用透明遮罩
- php - Laravel 5.7 无法使用文件附件
- pentaho - Pentaho 勺子:插入/更新 DROP COLUMN?
- adfs - ADFS - 获取用户信息
- java - 为什么我所有解码的字符串都有'?在最后?Java字符串解码
- r - dplyr:保留因子的空级别,但不保留未出现在数据中的因子组合的空级别
- algorithm - 生成具有最高多样性的 RGB 颜色集
- ruby-on-rails - 如何使用 Ruby + Selenium WebDriver 保存和加载 cookie
- laravel - Laravel 邮件自动化