2014-05-12 46 views
0

我试图构建一个从文本文件读取并输出到另一个文本文件的SSIS包。问题在于我试图读取的文件有多个部分,我找不到任何显示如何执行该操作的文件。SSIS - 从多部分文本文件中读取

文件看起来是这样的:

[sectionA] 
key1=value1 
key2=value2 
key3=value3 

[sectionB] 
key4=value4 
key5=value5 
key6=value6 

我开始与一对夫妇,从平面文件源读取,但数据被载入到一个同样丑陋表教程。希望有人对此有所投入。

+0

您只需要关键值或您是否需要部分信息? –

+0

请发布您想要的输出 – Jayvee

+0

感谢您的回复,我的SO通知有点延迟。我需要拉成读为表: 节名 key1的 键2 KEY3 ,然后填充值的字段。 – TrevorGoodchild

回答

2

SSIS平面文件连接是为速度而构建的,因此它不允许这样的细节。

我仍然会使用平面文件连接,但只是将所有数据加载到SQL表中的单个宽NVARCHAR列中。我将添加一个IDENTITY列到该表以获取相对的行号。

然后,我会添加下游任务,使用SQL按部分选择。对于A部分行:

WHERE File_Row_Number > (SELECT MIN (File_Row_Number) FROM Staging_Table WHERE nvarchar_column = '[sectionA]') AND File_Row_Number < (SELECT MIN (File_Row_Number) FROM Staging_Table WHERE nvarchar_column = '[sectionB]')

如果分割的要求是简单,如图那些我可能会尝试他们SQL例如

How do I split a string so I can access item x?

不过我可能会向倾斜的脚本任务使用Strings.Split其中代码会更简单,更安全。

+0

嗨迈克, 这就是我现在的位置。我已将它全部加载到单个列中,但我正在使用脚本任务来浏览文本。 – TrevorGoodchild

+0

花了一些时间,挫败了自己试图在SSIS中做到这一点,但是一旦我理解了这个解决方案就完美了。谢谢迈克! – TrevorGoodchild