Я использую SSIS 2012 и SQL Server 2014. У меня была эта проблема навсегда, и у меня есть YET, чтобы увидеть жизнеспособное решение - и я не уверен, почему больше людей не испытывают эту проблему. Вот моя простая задача потока данных:
Я получаю множество файлов Excel от клиентов. Проблема состоит в том, что некоторые поля содержат текст, длина которого превышает 255 символов - и, как мы все знаем, Microsoft НЕ достаточно умна, чтобы читать все строки (первые 8 записей читаются и предполагают, что если первые 8 строк меньше 255 символов, тогда ВСЕ строки должны быть меньше 255).
Конечно, это приводит к ошибкам усечения. Даже если я установлю для своего целевого столбца SQL значение nvarchar(max)
, службы SSIS все равно выдадут ошибку. Я уверен, что многие сталкивались с простым использованием SSMS, и импорт файла Excel вручную вызовет эту ошибку. Для моего пакета служб SSIS у меня есть задача преобразования данных, которая предположительно преобразует исходные данные в формат, который затем может быть перенесен в SQL Server. Очевидно нет.
Вот моя простая задача потока данных с выделенным столбцом сбоя:
Итак, ограниченные решения, которые я нашел в Интернете, рекомендуют сортировать данные так, чтобы самое широкое текстовое значение находилось сверху, чтобы SQL Server мог их прочитать. Я не могу сделать это для сотен файлов каждый раз. И мне нужны данные в исходном порядке сортировки, так что это невозможно. Или я должен вставить фиктивную запись в качестве первой строки в файле Excel.
А как бы это сделать - в задании сценария? Опять же, более сотни файлов? Я также слышал, что могу как-то изменить реестр. Хочу ли я возиться с этим? Есть ли что-нибудь из этого практичное?
Я не видел в Интернете ничего похожего на мою ситуацию - и я сбит с толку. Как это может быть? Я не могу быть единственным, кто сталкивается с подобными проблемами усечения.
В любом случае, я ценю любую помощь.