Предполагаемая цель: поднять добрую дюжину столов с DWH на S3. Полный набор записей, поэтому я хотел бы иметь его как oop.
План атаки:
- Создание файлов .csv для каждого из них
- Для каждого l oop над файлами передайте имя файла в переменную
vCurrentFile
- Задача сценария. Предполагается, что запрос будет иметь переменную
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.
...
Любой идея если / как это можно исправить?