【发布时间】:2015-10-16 03:03:17
【问题描述】:
我在 BIDS (SSIS 2008) 工作。我有一个非常简单的数据流任务,将平面文件导入 OLE DB 表。平面文件有 10 列,它们都映射到表中的相应列。平面文件的列分隔符是竖线字符,行分隔符是 {CR}{LF},并且没有标题。在平面文件源上,我将错误和截断上的违规行(所有 10 列)重定向到错误输出平面文件。
我每天都运行这个数据流任务,但我不能保证平面文件的每条记录总是有 10 列。因此,由于 SSIS 有使用行分隔符作为最后定义列的列分隔符的坏习惯(至少在我看来),因此它会尝试合并行。这意味着如果我的列数不足,则并非所有行都将作为单独的行导入表中。这也意味着违规行不一定会写入错误输出平面文件。
目前,仅有的两种情况是 (1) 文件将具有所需的列数,以及 (2) 文件将缺少列数。我还没有看到包含比预期更多的列的文件。因为此文件用于我的单元测试过程,所以我不想对文件进行预处理以获得正确的列数。我希望有问题的行写入错误输出平面文件(或者,如果不是错误输出平面文件),至少写入其他一些平面文件并且不被导入。我仍然希望导入具有正确列数的行。我怎样才能做到这一点。
【问题讨论】:
标签: ssis