我有一个文本文件,它根据一系列标记保存数据。标记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目标中的每个条目,标记都会重复。另请注意,只需要一些标记,可以忽略记录中的无关文本值。
答案 0 :(得分:1)
我会尽量保持脚本组件尽可能简单 - 只需将输入行拆分为单独的文本文件,可能会添加行号或类似内容以跟踪行集。我会使用Strings.Split将每个Tag C行分成不同的列,例如所有日期值都在第2列中,单个标题行显示"日期"在第2列。
然后我将使用SSIS平面文件源组件(在随后的数据流任务中)从单独的文本文件加载数据。该数据流可以忽略任何不需要的列。