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

时间:2015-06-03 19:48:42

标签: c# sql-server regex ssis

我有一个文本文件,它根据一系列标记保存数据。标记A表示具有CRLF分隔符的列,标记B是具有分号分隔符的单独列,标记C包含由分数和CRLF分隔符分隔的值。我创建了一个C#Script组件,每个标签都有输出列。

每个标签的示例数据:

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

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

1 个答案:

答案 0 :(得分:1)

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

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