SSIS合并连接失败字符串列

时间:2016-08-24 14:29:40

标签: sql-server ssis

SSIS Merge Join不保留两个输入表中输入字符串列的字符长度。我该如何解决这个问题?

  • 我有两个sort transforms加入合并连接转换。
  • 我已经使用高级编辑器验证了两个排序转换中的两个输出列的长度都是 32 并且两者都具有相同的名称。
  • 我在left outer join编辑器中执行了merge transform并通过将鼠标悬停在图表中的列名称来确认输入的长度 32

但是,输出列的长度 50 ,这会导致有关截断的验证警告。我没有看到合并加入的高级编辑选项,所以我不知道为什么会发生这种情况或如何解决它。

之前有人处理过此事吗?

3 个答案:

答案 0 :(得分:1)

所以,我终于找到了 解决方案。删除merge join transform并将其添加回来。似乎输入列最初设置为50,merge join transform显然缓存了列的最大大小。如果我从数据源增加了列的大小,merge join transform中的列大小也会增加,但是当我减小列的大小时,它会保持较大的大小。在没有删除组件并重新添加组件的情况下,我无法刷新此元数据。

答案 1 :(得分:1)

另一种解决方案是,如果不想删除转换然后再次将其重新添加(使用PITA),则可以编辑XML并更新合并联接中列的属性cachedLength =。

我希望微软会解决此问题。

答案 2 :(得分:0)

删除合并联接转换并将其添加回并重新映射所有列即可。