如何使用具有复杂多变数据的 SSIS 脚本组件解析文本文件

How to Parse text file using SSIS Script Component with Complex and Varied Data

我有一个文本文件,其中包含基于一系列标签的数据。标签 A 表示带有 CRLF 分隔符的列,标签 B 是带有分号分隔符的单独列,标签 C 包含由下划线和 CRLF 分隔符分隔的值。我创建了一个 C# 脚本组件,每个标签都有输出列。

每个标签的示例数据:

Tag A varchar(10) A123456789 
TagB varchar (50) cdw5w3464353
Tag C varchar(max) ***;User_____Date______Value;User123_____6/3/15_____3366cde;

我是否使用 RegEx 来识别每个标记值?还是有另一种方法来处理这种情况?请注意,对于要加载到 SQL 服务器目标中的每个条目,标签都会重复。另外请注意,只需要一些标签,可以忽略记录中无关的文本值。

我会尝试使脚本组件尽可能简单 - 只需将输入行拆分为单独的文本文件,或许添加行号或类似内容以跟踪行集。我会使用 Strings.Split 将每个标签 C 行分成单独的列,例如所有日期值都在第 2 列中,单个标题行在第 2 列中显示 "Date"。

然后我将使用 SSIS 平面文件源组件(在后续的数据流任务中)从单独的文本文件加载数据。该数据流可以忽略任何不需要的列。