SSIS Excel错误列

时间:2015-09-11 13:52:50

标签: sql-server excel ssis

我正在导入一个excel文件并从中获取数据。在少数字符串列中,某些行的值为"controller?action=delete&imageId=" . $photoID . "&token=" . $tokenId"; 。如何在SSIS中过滤掉这些行?我已尝试检查$tokenId值,并检查该行的列是否等于#VALUE!

NULL

Redis

但是,行直接通过并且根本不会被过滤。甚至可以过滤这些?列将导入为DT_STR。

2 个答案:

答案 0 :(得分:2)

您可以在Excel源与目的地之间使用条件性拆分转换来完成此操作。

根据该变量创建一个对象变量(我命名为Discard)和一个Recordset Destination。将条件分割条件设置为列==" #VALUE!"并将满足该条件的任何内容指向Recordset以丢弃它,而其他所有内容都遵循到目的地的默认路径。

如果您需要根据可能包含" #VALUE!"的多个列进行丢弃只需将条件扩展为包含所有列的OR。

Example Output

此技术的另一个好处是,您可以在作业结束时使用Discard Recordset来创建一个退出报告(如果需要)。

答案 1 :(得分:2)

好的,您需要更改条件拆分中的顺序。首先,您要检查ISNULL == True,然后ISNULL == False。

这两个条件中的一个将始终为真,因此该行将沿该路径发送,并且第三个条件(==" #VALUE!")将永远不会被评估。

首先尝试评估您的上一个条件。