我正在使用SSIS来区分好的数据和不可用的数据。为了做到这一点,我使用了派生列,脚本任务和条件拆分,其中我分配了特定的条件。我需要应用的条件之一是,一列中的任何数字都不能为负数。我猜解决这个问题的最好方法是使用条件拆分,但我不能让它工作。我是SSIS的新手,所以任何帮助都将不胜感激。
发布于 2018-06-08 23:57:09
你会有这样的表达
[MyCaseSensitiveColumnName] < 0
然后将输出路径命名为类似于BadData_NegativeValue
的名称
来自评论
这就是我之前所做的,但我得到了一个错误,说数据类型"DT_WSTR“和"DT_I4”对于二元运算符">“不兼容。
该错误消息指示您正在尝试比较unicode字符串(DT_WSTR)和整数(DT_I4),而表达式语言不允许这样做。
要解决此类型不兼容问题,您需要首先将MyCaseSensitiveColumnName
的值从DT_WSTR转换为整数。
我可能会在数据流中添加一个派生列组件,并使用如下表达式创建一个名为MyCaseSensitiveColumnNameAsInteger
的新列
(DT_I4) [MyCaseSensitiveColumnName]
现在,这可能是危险的,这取决于源数据的质量。我不知道你为什么要把数字数据作为字符串。如果数据集中可能存在非整数,那么我们需要在进行强制转换之前进行检查。如果该数据集中有NULL,那么这些也可能会导致问题。
这将导致我们的条件拆分检查成为
[MyCaseSensitiveColumnNameAsInteger] < 0
https://stackoverflow.com/questions/50764259
复制相似问题