zoukankan      html  css  js  c++  java
  • Data Flow ->> Merge

    Merge组件的作用和Union All很相似,就是把两个输入源的结果集合并成一个。但是不同之处在于:

    1)Merge输入的结果集需要先经过排序(这点表示怀疑)

    2)Merge对于输入的两个结果集的数据类型有明确是要求,必须是相同,比如A结果集的某个字段是int,那B结果集的对应字段也必须是int。但是对于数据长度,例如varchar,到时没有要求必须都是一样的长度。但是就是不可以一个是varchar,一个是nvarchar。

    3)Union all支持超过两个的输入结果集而Merge只支持两个。

    这样看的话,似乎用union all就行了。

    上面提到的第一点说数据集必须先记过排序,经过实验发现其实不然。两张表作为输入,虽然Merge要求你要把IsSorted改成True,然后设置Output Columns中的某个或者某些栏位的SortKeyPosition值,但是它本身又不是说设置了这两个值就等于在run-time的时候帮我进行数据集排序,因为观察了输入表中的数据插入顺序,还是A表+B表的那种顺序,而我在SortKeyPosition值的设置是对另外的栏位进行排序设置,如果说真的帮我排了序不会出现说A表+B表的这样插入顺序。而结果是package跑成功了。所以说Merge输入的结果集需要先经过排序这点前提其实不然。

  • 相关阅读:
    项目管理系列(其他):国际工程承包项目风险识别与分析
    公司注册之简化版
    公司注册之百度百科
    有效投标不足三家不应是重新招标的必要条件
    CPU频率
    集成电路
    晶体管
    Oracle问题之ORA-01609、ORA-00362
    Oracle问题之ORA-12560TNS:协议适配器错误
    Oracle问题之字符集问题,登陆sqlplus出现问号
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/4472819.html
Copyright © 2011-2022 走看看