Я использую SSIS для переноса данных.
Я использую целевой файл Excel для вывода всего, что идет не так .
В этом файле Excel я хочу вывести два столбца с ошибками (номер ошибки и столбец с ошибкой), а также все столбцы из моего входного компонента.
Это почти работает, за исключением случаев, когда у меня есть строковые столбцы, содержащие более 255 Когда я настраиваю место назначения в Excel, я создаю новую таблицу.
Оператор Create Table правильно определяет Longtext как тип данных:
CREATE TABLE `My data` (
`ErrorCode` Long,
`ErrorColumn` Long,
`ID` Long,
`MyStringColumn` LongText
)
Это работает в первый раз. Затем я удаляю все данные из файла Excel, потому что хочу очистить файл Excel перед выводом ошибок.
Когда я возвращаюсь в конструктор пакетов, определения моих столбцов перепутаны. Все текстовые столбцы обрабатываются как nvarchar (255) и не более ntext. Это нарушает работу моего компонента, поскольку мои данные превышают 255.
Как я могу правильно управлять получателями Excel?
thx
[Edit] ] Поскольку я не уверен в своей интерпретации, вот сообщение об ошибке при запуске задачи:
Error: 0xC0202009 at MyDataTask, To Errors file [294]: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80040E21.
Error: 0xC0202025 at MyDataTask, To Errors file [294]: Cannot create an OLE DB accessor. Verify that the column metadata is valid.
Error: 0xC004701A at MyDataTask, SSIS.Pipeline: component "To Errors file" (294) failed the pre-execute phase and returned error code 0xC0202025.