SSIS合并加入的结果

时间:2017-11-12 18:07:44

标签: sql-server excel merge ssis etl

我有两个数据源 - 文档和客户,我想加入它们,创建来自文档和客户的信息行,并将customer_code作为密钥。

最后,我在预期的30k结果中只获得了58个。

缺陷在哪里?

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

需要考虑很多事项:

  1. 使用混合数据类型列导入excel文件时,它将使用null替换非显性类型。 (使用Oledb或Ace.Oledb)
  2. 如果Customer_code列包含多种数据类型(例如:Numbers,Number存储为文本),则非显性数据类型字段将设置为null。所以你要确保列中的所有值都以相同的数据类型存储在excel 中(你必须打开excel才能检查)

    您可以阅读更多@ Importing data from Excel having Mixed Data Types in a column (SSIS)

    1. 如果customer_No包含字符,则必须确保两个excel文件中的值具有相同的大小写(加入ssis区分大小写),或者您必须添加两个派生列转换,使用以下表达式将Customer_Code列转换为大写:

      UPPER([Customer_Code])
      
    2. 根据此Microsoft article"在Integration Services中,合并和合并连接转换需要为其输入排序数据。必须物理地对输入数据进行排序,并且必须在源或上游转换中的输出和输出列上设置排序选项。如果排序选项指示数据已排序,但数据未实际排序,则合并或合并连接操作的结果将无法预测"

    3. 因此,尝试在合并连接之前在每个源上添加排序组件