SSIS 中的条件数据验证

Conditional Data Validation In SSIS

我的情况是 table 有两个主要列 DataFieldName 和 DataFieldValue 以及一些标识符,例如 OrderNumber。

现在在 DataFieldName 中有一个名为“OrderDate”的值,相应的日期在 DataFieldValue 中。

但是“OrderDate”的一些值是非日期值。我需要根据 DataFieldName 的值为“OrderDate”的条件验证此类非日期值,然后在 SSIS 中验证 DataFieldValue 的有效日期。

您可以使用 Conditional Split 拆分数据:

或者如果您使用的是 SQL 条件查询:

SELECT DataFieldName, DataFieldValue FROM yourTable
WHERE DataFieldName LIKE 'OrderDate'

如果您正在使用 SQL 服务器:

SELECT   
    CASE WHEN TRY_CONVERT(date, DataFieldValue) IS NULL   
    THEN 'Cast failed'  
    ELSE 'Cast succeeded'  
END AS Result 
FROM yourTable

如果您使用的是 Oracle :

SELECT cast(DataFieldValue AS NUMBER DEFAULT NULL ON CONVERSION ERROR) FROM yourTable

或者,您可以使用 Data Conversion Transformation 组件:

然后您可以将输出重定向到平面文件,例如: