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

时间:2010-06-28 23:41:59

标签: sql sql-server oracle sql-server-2008 ssis

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

在旧的DTS包中,在数据转换的选项下,我可以设置第一个和最后一个记录号,它只能获得那么多记录。

如果我正在进行查询,我可以将其更改为select top 5000或在顶部设置rowcount 5000(也许?这是Oracle源代码)。但是我抓住了整张桌子。

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

2 个答案:

答案 0 :(得分:0)

我们可以在数据流中使用rowcount组件,并在组件在优先约束条件下生成User :: rowCount< = 500之后插入目标。只要计数> 500,该过程就会停止将数据插入目标表。

感谢

prav

答案 1 :(得分:0)

自从我触及pl / sql已经有一段时间了,但我认为你可以简单地设置“rownum< = n”的where条件,其中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;

希望我没有太偏离基地。