ssis - 如何读取以小写 thorn 作为分隔符的平面文件

标签 ssis

我正在尝试在 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_(逗号)。保存文件,然后双击打开它备份。

您的连接管理器现在应该在“列”选项卡上显示荆棘符号。

enter image description here

有趣的是,打开包装后,如果您返回代码,编辑器会将刺字符替换为文件中的六角字符代码。诡异的。

关于ssis - 如何读取以小写 thorn 作为分隔符的平面文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20388031/

相关文章:

c# - 如何将变量从 C# 应用程序传递到 SSIS 包

ssis - 执行 SSIS 包创建巨大的没有。临时文件,这让我用完了磁盘空间

ssis - 单击 Excel 源任务的 "Unspecified Error"时为 'Name of Excel Sheet'

powershell - 为什么我的 .NET 4.0 程序集不能使用 Powershell 注册到 GAC?

SSIS 项目无法在自托管代理上构建

sql-server-2008 - 在SSIS中高效批量导入数据,偶尔PK重复内容?

sql-server - sqldumper错误导致C盘满

SSIS - 使用 OLE DB 命令更新表

sql-server - SSIS 处理大量平面文件的速度非常慢

variables - 有没有办法将总和传递给包级变量?