SSIS解析不规则的平面文件?

时间:2010-01-08 19:09:18

标签: parsing ssis flat-file

我非常熟悉常规分隔文本数据文件的SSIS解析,但是,我正在寻找一些方法来解决一个看起来像这个测试文件的文件:

ISA*00* *00* *01*220220220 *ZZ*RL CODE 01*060327*1212*U*00300*000008859*0*P*:~
GS*RA*CPA-BPT*LOCALUTILITY*060319*1212*970819003*X*003030~
ST*820*000000001~
BPR*C*321.91*C*X12*CBC*04*000300488**9918939***04*000300002**1598564*070319~
TRN*1*00075319970819105029~
REF*RR*0003199708190000174858~
DTM*097*070318~
DTM*107*070318~
N1*PR*DIRECT PAYMENT~
N1*PE*ABC CORPORATE BILLER*ZZ*90005836~
ENT*1~
N1*PR*BILLING - TEST - NATTRASS~
RMR*CR*0009381082105011**142.15~
REF*TN*000303965~
DTM*109*070316~
ENT*2~
N1*PR*BILL FREID TEST~
RMR*CR*0011010451800011**179.76~
REF*TN*000304189~

321.91是交易的总和。

我更喜欢用SSIS做这个,但也可以创建一个C#解析器。

建议将不胜感激。

谢谢。

4 个答案:

答案 0 :(得分:2)

对此没有简单的答案。 SSIS的平面文件数据源除最简单的格式外无法处理任何内容。我已经使用平面文件任务读取粗糙的右侧或reccord类型的平面文件作为一个大列。然后,我将通过脚本任务运行它来处理解析。对不起,没有比那更简单的答案...你会认为会有。

答案 1 :(得分:2)

上面显示的文件称为“837文件”。您可以搜索837文件解析器或在c#中解析此类文件的方法。我没有链接,但至少这应该至少帮助你找到解决方案(记住:“837文件”)

(顺便说一句,我认为这违反了HIPAA规则。你不能公开发布/发布。尽管数据可能是虚构的,但你不能真正发布这样的内容。请仔细检查)

03/18/10更新:

我找到了"How To Read the ANSI 837 File" doc here(PDF下载)

03/26/10更新:

我发现了更多相关信息。该示例可能根本不是837文件。它似乎是ANSI X12 - EDI标准。请查看EDI Mapping doc (pdf)

以及此Google Search Result on EDI X12

而且,EDI Tools for Programmer

请为此问题发布解决方案,以便任何需要答案的人都能从中受益; - )

答案 2 :(得分:0)

此示例文件对于要处理的常规平面文件数据源组件而言会很复杂。使用SSIS执行此操作的唯一方法是使用脚本组件作为数据流中的源。然后,您可以访问所有.Net Framework库,然后您就可以在该组件中创建自定义的c#或vb(使用2008)或vb(使用2005)解析器。祝你好运!

答案 3 :(得分:0)

假设在SSIS中执行此操作不是一个干净的选项,您可以使用开源File Helpers库来有效地编写C#解析器。

文件助手对于解析分隔文件和固定长度文件非常有用。