2010-06-28 3 views
2

У меня есть источник Oracle, и я получаю всю таблицу, и она копируется в таблицу SQL Server 2008, которая выглядит одинаково. Просто для тестирования я хотел бы получить только подмножество таблицы.Как ограничить число строк в задаче потока данных SSIS?

В старых пакетах DTS в разделе «Параметры» в преобразовании данных я мог бы установить первый и последний номер записи, и он получит только столько записей.

Если бы я делал запрос, я мог бы изменить его на выбранный топ 5000 или установить rowcount 5000 наверху (возможно, это источник Oracle). Но я хватаю весь стол.

Как ограничить количество строк при выборе таблицы Oracle?

ответ

0

Мы можем использовать компонент rowcount в потоке данных и после того, как компонент сделает User :: rowCount < = 500 в условии ограничения приоритета при кодировании в цель. Всякий раз, когда число> 500, процесс останавливается, чтобы вставить данные в целевую таблицу.

благодаря

Правдин

+0

Извините, я думал в потоке управления, но фактически в потоке данных мы не можем установить условие ограничения приоритета. Я вернусь с пробной проверкой. спасибо prav – prav

+0

ОК, мысли 1. Если у нас есть исходные данные PK в числах, которые мы можем использовать, используя условие split. 2. Создайте производную таблицу с одним столбцом идентификации и подтверждением формы PK, затем возьмите верхние записи X, используя метод Lookup. 3. Сбрасывание полных исходных данных в производную таблицу с той же схемой источника, а затем выбор X количества записей в исходный код. больше никаких моментов просьба сообщить мне. спасибо prav – prav

+0

Это звучит как большая работа, чтобы просто ограничить число во время тестирования. Я хочу, чтобы все данные были недоступны, но мне не нужны все 4 миллиона записей (и я не хочу ждать, пока это произойдет). – thursdaysgeek

0

Это было некоторое время, так как я прикоснулся PL/SQL, но я думаю, что вы могли бы просто поставить где состояние «ROWNUM < = п», где N = количество строк, которое вы хотите для своего образца. ROWNUM - псевдо-столбец, который существует в каждой таблице Oracle. , , это удобная функция для таких проблем (она эквивалентна функции row_number() t-sql без возможности разбиения и сортировки (я думаю). Это помешало бы вам привести всю таблицу в память:

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

для дальнейшего использования (и только потому, что я работал с ним в последнее время), что эквивалентно DB2 для этого оговорка «выборка первого п только» в конце заявления:

select col1, col2 
from tableA 
fetch first 10 only; 

Надежда I»

+0

Но, я не делаю запроса, я просто хватаю за стол.Я могу изменить его на запрос, если это необходимо, но есть 20 + полей, и я не хочу их идентифицировать. – thursdaysgeek