在SSMS和SSIS中运行查询时的不同输出
我有一个DFT,它将数据从OLEDB源传输到OLEDB目标。源有一个查询,该查询包含以下CASE语句:在SSMS和SSIS中运行查询时的不同输出,ssis,Ssis,我有一个DFT,它将数据从OLEDB源传输到OLEDB目标。源有一个查询,该查询包含以下CASE语句: SELECT Case Gender When 'M' Then 'M' When 'F' Then 'F' Else Case XX_GenderID When 1 Then 'M' When 5 Then 'F'
SELECT Case Gender
When 'M' Then 'M'
When 'F' Then 'F'
Else Case XX_GenderID
When 1 Then 'M'
When 5 Then 'F'
Else 'U'
End
End as IN_Gender
FROM TblA
当我在SSIS中运行DFT时,它有时会将目标中传入的“U”值从TblA更改为“9”。我不知道这9是从哪里来的。但是当我在SSMS中测试这个查询时,它没有将U转换为9。我还尝试在SSIS中手动执行该步骤,但仍然没有转换U值。我不知道是什么原因造成的。有什么想法吗?如果是数据类型问题,您可以尝试在查询中显式转换为CHAR(1):
SELECT CAST(Case Gender ...
End AS CHAR(1)) as IN_Gender
FROM TblA
我会尝试在不同的步骤中添加到您的数据流中。如果以后将该值更改为9,则可以看到发生这种情况的位置。如果数据源中已经出现了9,那么您就知道问题所在。如果您有看似随机的数据更改,那么其他东西正在更改它。扳机?另一个SSI?另一个存储过程?SSI中的一些代码您没有注意到