我继承了一堆 SSIS 包。在其中一些包中,有一个连接管理器用于获取平面文件。这些平面文件每天从 FTP 下载并解压缩 - 然后在这些包中使用。这些包是通过 SQL 代理作业执行的,并且该作业当前正在成功。
现在我们有了一个以前没有的附加平面文件,我们希望将其包含在内(我们只是将平面文件中的数据转储到 SQL 服务器表中)。因此,这个新的平面文件将被转储到一个新表中。文件和表与已在使用的文件/表之一的架构完全相同 - 所以我已将所有内容设置为匹配。
问题是,当我手动运行它时,我无法执行其中一个包,因为它说它找不到连接管理器中引用的平面文件。奇怪的是,我在连接管理器中看到了一个硬编码的特定平面文件。这些文件在文件名中包含一个简单的日期戳 - 所以......如果 SQL 作业仍然成功,并假设我正在查看的包与作业执行的版本相同(我已经通过导出验证了这一点实时包/导入 BIDS 并比较)那么包怎么可能引用一个不再存在的旧文件。(部分 sql 作业也删除了旧文件 - 所以包不可能抓取旧文件)。
我注意到的唯一另一件事是包中名为“SearchFileName”的变量——这很有意义,但我在包中看不到它使用的任何地方。应该是吧,就是找不到在哪 也许有一种特定的方法来寻找它?
总而言之——一个计划的作业执行一个包——但是当我在 BIDS 中查看包时,有一个硬编码的引用对包中正在使用的不再存在的文件的引用。我不知道这是如何工作的,我需要知道以便我可以安排另一个包从另一个更新的类似文件中提取。
这是使用硬编码文件名的变量和连接管理器的屏幕截图。