我使用SSIS将好数据与不可用日期分开。为了做到这一点,我使用派生列,脚本任务和条件分割,我分配了一些条件。我需要应用的一个条件是,一列中的数字都不能为负数。我猜测解决这个问题的最佳方法是使用条件拆分,但我无法让它工作。我是SSIS的新手,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
你有像
这样的表达式[MyCaseSensitiveColumnName] < 0
然后将输出路径命名为BadData_NegativeValue
来自评论
这就是我以前做的,但是我收到的错误是说数据类型&#34; DT_WSTR&#34;和&#34; DT_I4&#34;与二元运算符&#34;&gt;&#34;
不兼容
该错误消息表明您正在尝试比较unicode字符串(DT_WSTR)和整数(DT_I4),并且表达式语言不允许它。
要解决此类型不兼容问题,您需要先将MyCaseSensitiveColumnName
的值从DT_WSTR转换为整数。
我可能会在我的数据流中添加一个派生列组件,并创建一个名为MyCaseSensitiveColumnNameAsInteger
的新列,其表达式为
(DT_I4) [MyCaseSensitiveColumnName]
现在,根据源数据的质量,可能是危险的。我不知道你为什么要把数字数据作为字符串拉出来。如果数据集中可能存在非整数,那么我们需要在进行转换之前进行检查。如果该数据集中存在NULL,那么这些也可能导致问题。
这将导致我们的条件分裂检查变为
[MyCaseSensitiveColumnNameAsInteger] < 0