我想知道是否有任何人用来在 SSIS 平面文件连接管理器中映射固定宽度的平面文件的工具(或特殊技术)?
通常我只使用平面文件连接管理器编辑器(高级选项卡)并开始为所有列一一添加列信息(名称、宽度、数据类型等)。
过去这对我来说效果很好,但现在我必须映射一个具有接近 500 列的固定宽度文件......
我在想(希望)应该有一种工具或技术我可以使用,这将使我能够以更流线型的方式完成映射......
使用我为文件提供的数据字典,我可以轻松地创建一个 excel(或文本)文档,例如其中包含 SSIS 需要的必要信息(列名、分隔符、InputColumnWidth、OutpuColumnWidth、DataType)的几列来映射文件.
我想知道是否有一个 SSIS 工具或组件可以读取此文件并自动在平面文件连接管理器中为我创建映射...
如果没有这样的工具,是否有人有任何技巧或提示可以帮助我以最有效的方式映射文件?
我想知道是否可以修改 SSIS 包 xml 文件,这样我可以创建一些代码,将所有列的列信息脚本化为 xml 格式,然后我可以手动将其复制并粘贴到包 xml文件...不确定这是否可行....
注意:在 SSIS 中映射文件后,它将被加载到 SQL Server 表中
我想到了两个选项,它们都是 can't-say-enough-good-things-about-this-free-tool BIDS Helper的功能。
创建固定宽度的列
第一个是创建固定宽度列功能。就像创建一个平面文件管理器指向正确的文件并定义 1 列一样简单。
完成后,右键单击连接管理器并使用“创建固定宽度列...”的上下文相关功能
在下一个窗口中,将制表符分隔列表 (Excel) 粘贴到编辑器中
哦,是的,这很简单。如果您需要对列类型等进行一些调整,那么您可以正常使用编辑进行更改。
比姆
我喜欢用于我的 SSIS 开发的商业智能标记语言。它有很多好处,但在最基本的层面上,将它用于诸如可怕的平面文件之类的东西,特别是当它们不提供标题行时(我在看着你,你的大型机)。
在处理遗留系统时,我经常有经验,它们的文件定义在 COBOL 副本中。这些开发人员将向我发送带有列布局的 Excel 文件,例如
这并不花哨,但 Excel 公式可以轻松完成。因此,我将根据上述内容创建 4 个新列。
Sanitized Name(删除了列名的无效字符)
长度(提取数字,注意这仍然有一个前导 0,但它没有伤害)
XML(这为平面文件定义构建了实际的 XML)
DDL(我在它的时候也可以构建目标表)
DDL 的第一列删除了前导逗号,然后用
CREATE TABLE dbo.FOO()
最终,该 XML 会导致一些东西被打到
FlatFileFormat
标签中,然后创建 Connections 集合和最后的包本身就是一件简单的事情。看起来很多,但实际上很简单,只要你有一个模式。哦,还有一个来自SO的类似问题,答案非常相似。希望我在重写这个答案之前看过斯金纳的评论。