SSIS: параметрическое назначение плоского файла - PullRequest
0 голосов
/ 27 марта 2020

Предполагаемая цель: поднять добрую дюжину столов с DWH на S3. Полный набор записей, поэтому я хотел бы иметь его как oop.

План атаки:

  1. Создание файлов .csv для каждого из них
  2. Для каждого l oop над файлами передайте имя файла в переменную vCurrentFile
  3. Задача сценария. Предполагается, что запрос будет иметь переменную
 string FullFileName = Dts.Variables["vCurrentFile"].Value.ToString();
 int StartPosition = FullFileName.LastIndexOf("\\") + 1;
 int EndPosition = FullFileName.LastIndexOf(".");

 string TableName = FullFileName.Substring(StartPosition, EndPosition-StartPosition);
 string Query = "SELECT * FROM ZooskDatawarehouse.." + TableName + ";";

 Dts.Variables["vTableName"].Value = TableName;
 Dts.Variables["vQuery"].Value = Query;
Задача потока данных - и вот где все обрывается

Источник Ole DB использует vQuery для выполнения команды, пока что все хорошо. Следует также упомянуть тот факт, что в качестве значения по умолчанию для переменной задана команда для запроса первой таблицы в списке.

Задача назначения плоского файла относится к соединению плоского файла IterableCsvConn, в котором строка подключения параметризована через @[User::vCurrentFile]

Когда я выполняюсь, первая итерация таблицы разрешается должным образом, я думаю, из-за команды по умолчанию, но на второй итерации я получаю эту ошибку

Warning: 0x800470C8 at Data Flow Task, OLE DB Source [236]: The external columns for component "OLE DB Source" (236) are out of synchronization with the data source columns. The column "tbl2_c1" needs to be added to the external columns.
The column "tbl2_c2" needs to be added to the external columns.
The external column "tbl_c1" (263) needs to be removed from the external columns.
...

Любой идея если / как это можно исправить?

...