Получение второго набора данных из источника OLE DB в SSIS

Мне нужно прочитать данные из DB1 и записать их в другую DB2. Я использую сложный запрос с CTE и временными таблицами, и нет, я не могу поместить этот запрос в SProc. Я использую источник OLE DB и пункт назначения OLE DB.

Когда я помещаю запрос как команду SQL в OLEDBSource, я получаю обычную жалобу на невозможность определить метаданные, потому что CTE использует временную таблицу.

Я не могу использовать обходной путь "с наборами результатов", потому что это не SProc. Так что я пытаюсь с другим обходным путем, "УСТАНОВИТЕ FMTONLY ВКЛ / ВЫКЛ" .

Теперь OLE DB Source принимает мой запрос, но выводит два набора данных: первый пустой, а второй - данные, которые мне нужны. Назначение OLE DB не записывает ни одной строки, потому что читает только первый набор результатов, пустой.

Как я могу решить это?

Я не могу изменить временные таблицы во что-то еще, и в основном я не могу изменить запрос. Я ищу решение SSIS, если это возможно, а не решение SQL. Спасибо.

1 ответ

Решение

Для решения служб SSIS нельзя использовать источник OLE DB. Этот компонент может получить доступ только к первому набору результатов.

Что вы можете сделать, так это использовать Преобразование сценария в качестве источника данных, получить доступ ко второму набору результатов обычным способом и отправить его столбцы в выходные данные сценария.

Другие вопросы по тегам