从ssis中的平面文件中跳过错误行

时间:2017-01-02 09:14:16

标签: ssis bulkinsert business-intelligence flat-file dft

我正在尝试从平面文件加载数据。该文件大小约为2.5 GB,行数接近十亿。我在DFT中使用平面文件源。文件中的几行不符合列模式,例如,有一个额外的分隔符或说文本限定符作为一列的值。我想跳过这些行并加载具有正确格式的其余行。我正在使用SSIS 2014.DFT内的平面文件源失败。我将alwaysCheckforrowdelimiter属性设置为false但仍然无法正常工作。由于文件太大,手动打开和更改是不可能的。请帮助。

1 个答案:

答案 0 :(得分:0)

我和Nick.McDermaid有同样的想法,但我可以帮助你一点点。 您可以使用正则表达式清理文件。 (在脚本中)

您只需要定义一个正则表达式,以匹配您想要的分隔符数。其他行应删除。

这是在Notepad ++中执行的可视化示例

Notepad++ Example screenshot

以下是我的示例所使用的模式:

SELECT Count([Date BP]) AS CountOfField
FROM Master

数据样本:

^[A-Z]*;[A-Z]*;[A-Z]*;[A-Z]*$

您可以在线试用:https://regex101.com/r/PIYIcY/1

此致 阿诺