【问题标题】:Different output when running a query in SSMS and SSIS在 SSMS 和 SSIS 中运行查询时的不同输出
【发布时间】:2013-04-04 10:10:00
【问题描述】:

我有一个将数据从 OLEDB 源传输到 OLEDB 目标的 DFT。 Source 有一个包含以下 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 值。我不知道可能是什么原因造成的。有什么想法吗?

【问题讨论】:

    标签: ssis


    【解决方案1】:

    如果是数据类型问题,您可以尝试在查询中显式转换为 CHAR(1):

    SELECT CAST(Case Gender ...
    End AS CHAR(1)) as IN_Gender
    FROM TblA
    

    我会尝试在各个步骤中将Data Viewers 添加到您的数据流中。如果该值稍后更改为 9,您可以看到发生的情况。如果从数据源中出来已经是 9,那么您就知道问题出在哪里了。

    【讨论】:

      【解决方案2】:

      如果您有看似随机的数据更改,那么其他东西正在更改它。触发器?另一个SSIS?另一个存储过程?您没有注意到 SSIS 中的某些代码?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-09-08
        • 2019-08-22
        • 1970-01-01
        • 2016-04-18
        • 2016-06-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多