2017-04-26 53 views
0

我需要使用SSIS加载1个文件。 我正在获取PIPE(|)分隔的csv文件。但是在每个数据行之间,我得到1行只有“-----------”。如果我尝试加载文件作为PIPE分隔比我没有得到正确的记录。在交替行中导入具有不同格式的文件

我有1个解决方案是我需要将整行加载到单列中,比我需要筛选具有“----”的行,比我需要使用转换和拆分列成列。但如果发生变化,将很难管理。

任何人都可以给任何其他的想法来加载这样的文件? enter image description here

+1

我想看看是否有一种方法,先删除替代行,然后再尝试读取它作为csv ... – TDP

+0

为什么不使用条件拆分并将“----”行发送到多播?你可以(如果你想!)然后用逗号替换剩余数据上的PIPE(|),并将其输出到一个新的.csv文件中。接下来的数据流会读取这个.csv文件。在创建第二个数据流之前,您需要运行一次,因为您需要示例.csv文件来设置新的数据源。 – MiguelH

+0

可以有很多方法来处理这种情况,但更好的选择是要求客户端只发送CSV中的有效记录,如果csv大的文件大小例如1GB,它会影响性能,因为你的包会查找不好的记录在文件中意味着你正在检查每一行。 – observer

回答

0

之后,我发现解决方案是以“衣衫褴褛”的格式读取文件,然后过滤掉以“ - ”开头的记录。

0

您可以通过脚本任务或转换来完成此操作。查看脚本中的每一行,如果全是破折号,则忽略它,否则用管道字符解析它。

相关问题