Ошибка импорта DTS
У меня есть таблица. Он содержит информацию о компании, такую как имя, адрес, телефон, адрес электронной почты и т. Д. Все, что я хочу сделать, это простой импорт в SQL в таблицу, которую он может создать, чтобы я мог выполнить некоторую обработку на нем. Я просто использую MS SQL Import Wizard. Я не использую BCP.
Он доходит до конца и дает мне эту ошибку:
Операция Blockquote остановлена ...
Инициализация задачи потока данных (успех)
Инициализация соединений (успех)
Установка команды SQL (успех)
Настройка подключения к источнику (успех)
Настройка целевого соединения (успех)
Валидация (Успешных) Сообщений Предупреждение 0x80049304: Поток данных Задача 1: Предупреждение: Не удалось открыть глобальную общую память для связи с производительной DLL; Счетчики производительности потока данных недоступны. Чтобы решить эту проблему, запустите этот пакет от имени администратора или на консоли системы. (Мастер импорта и экспорта SQL Server)
Подготовка к выполнению (успех)
Предварительно выполнить (Успех)
Выполнение (Ошибка) Сообщения Ошибка 0xc020901c: Поток данных Задача 1: Произошла ошибка с источником - crm_company$.Outputs[Исходный вывод Excel]. Столбцы [Направления] на источнике - crm_company$.Outputs[Исходный вывод Excel]. Возвращалось состояние столбца: "Текст был усечен или один или несколько символов не совпадали на целевой кодовой странице". (Мастер импорта и экспорта SQL Server)
Ошибка 0xc020902a: Поток данных Задача 1: "Источник - crm_company$.Outputs[Исходный выход Excel]. Колонки [Направления]" не выполнен, так как произошло усечение, и расположение строки усечения для "Источник - crm_company$.Outputs[Исходный вывод Excel]].Columns[Directions]"указывает сбой при усечении. Произошла ошибка усечения указанного объекта указанного компонента. (Мастер импорта и экспорта SQL Server)
Копирование в [dbo].[Crm_company] (Остановлено) Сообщения Ошибка 0xc0047038: Поток данных Задача 1: Код ошибки служб SSIS DTS_E_PRIMEOUTPUTFAILED. Метод PrimeOutput в Source - crm_company$ возвратил код ошибки 0xC020902A. Компонент возвратил код ошибки, когда механизм конвейера вызвал PrimeOutput(). Значение кода ошибки определяется компонентом, но ошибка является фатальной, и конвейер прекратил выполнение. Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое. (Мастер импорта и экспорта SQL Server)
Информация о сообщениях после выполнения (успеха) 0x4004300b: Поток данных Задача 1: "Destination - crm_company" записала 469 строк. (Мастер импорта и экспорта SQL Server)
Blockquote
Прежде всего, я сказал DTS игнорировать любые ошибки усечения. Исходные поля: int или nvarchar. Я редактирую отображения и заставляю его быть int вместо float для нужных столбцов. Я установил размер столбца по умолчанию равным 510 из 255. Для 2 столбцов, Directions и Notes, он решил, что Directions - это nvarchar, а Notes - это nvarchar(max). Я переопределяю Directions one, чтобы он обрабатывался как nvarchar (max), и я вижу, что в таблице он создается после запуска. Однако, когда он работает, он терпит неудачу КАЖДЫЙ РАЗ с указанной выше ошибкой.
Я просто хочу эти данные в таблицу. Это все. Если я сначала укажу таблицу вручную и импортирую, она все равно будет ошибочной. Самый длинный текст в Directions составляет 978 символов, поэтому он вряд ли огромен. Мне все равно, если это усекается, я просто не хочу, чтобы это прекратилось, когда он чувствует, что это необходимо. Импортируется 16000 строк, и только 470 импортируются, прежде чем происходит сбой.
Я не знаю, какая строка не сработает в исходном файле, потому что, как ни странно, DTS не извлекает данные в том порядке, в котором они находятся, в электронной таблице. Пойди разберись. Я попытался переопределить глупые попытки DTS при определении форматов столбцов, вставив 20 строк текстовых данных, но это все равно не помогло.
2 ответа
Я пытался обойти это, и мне было гораздо проще импортировать электронную таблицу в Access, а затем импортировать Access в SQL. Работа сделана за 5 минут.
Предложения:
Если у вас есть Visual Studio BI, разработайте пакет служб SSIS и:
1.) Попробуйте добавить ветку для неудачных строк, чтобы перенаправить их. Вы можете сделать это, добавив маршрут с красной линией из источника Excel. После запуска пакета вы можете провести анализ успешных и неудачных строк.
2.) Важно то, какой тип соединения вы используете для SQL Server. У меня много проблем с собственным клиентом SQL, поэтому я предпочитаю использовать типы соединений ADO.NET или OLE DB.
С помощью мастера:
3.) Попробуйте использовать преобразование типов
4.) Сохраните файл в TXT, затем выполните ETL.