我正在尝试在 SSIS 中读取这种格式的平面文件
col1 + col2 + col 3
我正在使用平面文件连接管理器,但在连接管理器的列定界符部分没有“þ”字符选项。
解决这个问题的方法是什么?除了读取文件并用 SSIS 支持的定界符替换 thorn 字符外,
最佳答案
作为一个愚蠢的美国人,我认为小写的 thorn 字符是 0xFE,而大写的是 0xDE。这很快就会变得很重要。
我使用平面文件连接管理器创建了一个 SSIS 包。我将它指向一个逗号分隔的文件,看起来像
col 1,col 2,col 3
这使我能够获取文件的元数据集。一旦我定义了所有列并且我的包在其他方面都很好。保存。将其提交到您的版本控制系统。如果您没有使用版本控制,真可耻,但请复制您的 .dtsx 文件并将其放在手边的某个地方。
用刺分隔的文件替换逗号分隔的文件。
我们在做什么
我们要做的是手动编辑作为我们的 SSIS 包的 XML,以将 ,
的定界符替换为 þ
。这是一个直接的操作,但由于您要取消预订,所以很容易搞砸,然后您的包裹将无法在编辑器中正常打开。
如何修复
如果您打开了包,请关闭包但让 Visual Studio 保持打开状态。右键单击该文件并选择“查看代码”。
在 SSIS 2012 包中,您将寻找
DTS:ColumnDelimiter="_x002C_"
在 2008 包中,
<DTS:Property DTS:Name="ColumnDelimiter" xml:space="preserve">_x002C_</DTS:Property>
我们要做的是用_x00FE_
(刺)代替_x002C_
(逗号)。保存文件,然后双击打开它备份。
您的连接管理器现在应该在“列”选项卡上显示荆棘符号。
有趣的是,打开包装后,如果您返回代码,编辑器会将刺字符替换为文件中的六角字符代码。诡异的。
关于ssis - 如何读取以小写 thorn 作为分隔符的平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388031/