Получение второго набора данных из источника 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. Этот компонент может получить доступ только к первому набору результатов.
Что вы можете сделать, так это использовать Преобразование сценария в качестве источника данных, получить доступ ко второму набору результатов обычным способом и отправить его столбцы в выходные данные сценария.