簡體   English   中英

如何限制 SSIS 數據流任務中的行數?

[英]How do I limit the rowcount in an SSIS data flow task?

我有一個 Oracle 源,我正在獲取整個表,並將它復制到一個看起來相同的 SQL Server 2008 表。 只是為了測試,我只想得到表的一個子集。

在舊的 DTS 包中,在數據轉換的選項下,我可以設置第一個和最后一個記錄號,它只會獲得那么多記錄。

如果我正在執行查詢,我可以將其更改為 select top 5000 或在頂部設置 rowcount 5000(也許?這是一個 Oracle 源)。 但我抓住了整個桌子。

選擇Oracle表時如何限制行數?

我們可以在數據流中使用rowcount組件,並在定位到目標時在優先約束條件中使該組件使User :: rowCount <= 500之后。 每當計數> 500時,過程就會停止,將數據插入目標表中。

謝謝

prav

自從我接觸pl / sql已經有一段時間了,但是我認為您可以簡單地將where條件設置為“ rownum <= n”,其中n =您想要的樣本行數。 ROWNUM是每個Oracle表上都存在的偽列。 這對於這樣的問題是一個方便的功能(相當於t-sql的row_number()函數,但沒有分區和排序的功能(我認為)。這將使您不必將整個表都放入內存中:

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

為了將來參考(並且僅因為我最近一直在使用它),DB2的等效項是語句末尾的“僅獲取前n個”子句:

select col1, col2
from tableA
fetch first 10 only;

希望我沒有太過落伍。

數據流中的行采樣組件限制了行數。 只需將其插入源和目標之間並設置行數。 對於大量數據和無法修改查詢時非常有用。 在這個例子中,我在源代碼中執行了一個 SP。 請參閱下面的示例

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM