代码之家  ›  专栏  ›  技术社区  ›  thursdaysgeek

如何限制SSIS数据流任务中的行数?

  •  2
  • thursdaysgeek  · 技术社区  · 14 年前

    我有一个Oracle源,我正在获取整个表,它将被复制到一个看起来相同的SQL Server 2008表中。只是为了测试,我只想得到表的一个子集。

    在旧的dts包中,在“数据转换选项”下,我可以设置第一个和最后一个记录编号,它只能获取这么多的记录。

    如果我正在进行查询,我可以将其更改为选择前5000或将行数5000设置为顶部(可能是?这是一个Oracle源)。但我把整张桌子都抢了。

    选择Oracle表时如何限制行数?

    2 回复  |  直到 14 年前
        1
  •  0
  •   prav    14 年前

    我们可以在数据流中使用rowcount组件,在该组件将用户::rowcount<=500作为优先约束条件后,再将其放入目标中。每当Count>500停止时,进程就会将数据插入目标表。

    谢谢

    普拉夫

        2
  •  0
  •   scottE    14 年前

    我已经有一段时间没有接触到pl/sql了,但是我认为您可以简单地将where条件设置为“rownum<=n”,其中n=您希望用于示例的行数。rownum是存在于每个Oracle表中的伪列。…对于这样的问题,它是一个方便的特性(它相当于T-SQL的row_number()函数,没有分区和排序的能力(我认为)。这将使您不必将整张桌子带入记忆中:

    select col1, col2
    from tableA
    where rownum <= 10;
    

    为了将来的参考(而且只是因为我最近一直在使用它),DB2对这一点的等价物是语句末尾的“fetch first n only”子句:

    select col1, col2
    from tableA
    fetch first 10 only;
    

    希望我没有太离群。