我创建了一个SSIS包,以便我可以按计划的时间间隔从旧版FoxPro数据库导入数据。为几个客户安装了FoxPro数据库的副本。总的来说,这个软件包工作得很好,完成了我所需要的一切。SSIS OLE DB数据流来源:输出可能有不同长度的列
但是,我有一个恼人的情况,其中至少有一个客户(也许更多)有一个修改的FP数据库,他们增加了一个表中的一列的长度。当我在这样的客户上运行软件包时,由于截断而失败。
我以为我可以给自己一些摆动的空间,并将长度从3改为10.这样,长度为10的突变体将被容纳,以及其他所有使用3的突变体。然而,当SSIS列长度不匹配,句点。
我想我有几个选择:
- 在任务设置“ValidateExternalMetadata”为假。但是,我不确定这是最负责任的选择......还是它?
- 让我们的执行团队将所有客户的长度更改为10。这可能是一个问题,但至少这是他们的问题。
- 创建适用于具有不同列长度的解决方案的任务副本。实施可能会在某个时候使用错误的软件包,每个人都会问我为什么不给他们一个单一的软件包,无法处理所有情况,并将此归咎于我。
- 使用一些其他的方法,你可能会填补我的空白。
我结束了使用CAST(我试图错误地尝试CONVERT早期的SSIS有一个限制,你不能使用计算列作为数据源,实际上我的意思是OLE DB/ANSI 92等效CAST ),但我认为它与你所建议的基本相似。谢谢。 – HackedByChinese 2010-11-17 16:33:47