Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SSMS和SSIS中运行查询时的不同输出_Ssis - Fatal编程技术网

在SSMS和SSIS中运行查询时的不同输出

在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'

我有一个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'   
                   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中的一些代码您没有注意到