2010-10-27 3 views
2

Я пытаюсь загрузить файл с использованием функции данных SQL Server Import Data - добавления строк в существующую таблицу.Использование пространственных типов SQL Server при загрузке данных SSIS

моя существующая таблица создается следующим образом:

CREATE TABLE [dbo].[load](
    [Long] [varchar](50) NULL, 
    [Lat] [varchar](50) NULL, 
    [Geog] AS ([geography]::STGeomFromText(((('POINT('+[Long])+' ')+[Lat])+')',(4326))) 
) 

однако, когда нагрузка пытается выполнить я вижу следующие сообщения об ошибках. Я считаю, что проблема связана с вычисленным столбцом «Geog», поскольку данные загружаются отлично, когда я беру это из определения таблицы.

Ошибка 0xc0202009: Поток данных Задача 1: SSIS Код ошибки DTS_E_OLEDBERROR. Ошибка Ошибка OLE DB. Код ошибки: 0x80004005. Запись OLE DB - . Источник: «Microsoft SQL сервера Native Client 10.0» Hresult: 0x80004005 Описание: «В то время как чтение текущей строки от хоста, сообщение с истекшим преждевременным было встречается - входящий поток данных был прерван, когда сервер ожидающих увидеть больше данных. Возможно, завершилась программа хоста . Убедитесь, что вы используете поддерживаемый клиент интерфейс прикладного программирования (API). ". (Импорт SQL Server и мастер ) Ошибка 0xc0209029: Поток данных Задача 1: Код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. "Входной "Ввод получателя"(47)" не удалась, поскольку код ошибки 0xC020907B произошло, и строка ошибки расположение на "вход "Destination Input"(47)" указывает на неисправность ошибки. Произошла ошибка в заданном объекте указанного компонента . Может возникнуть ошибка сообщений, размещенных до этого, с более информация об ошибке. (SQL мастера настройки сервера Импорт и экспорт) Ошибка 0xc0047022: Поток данных Задача 1: SSIS Код ошибки DTS_E_PROCESSINPUTFAILED. Метод ProcessInput на компоненте «Destination - load_school» (34) с кодом ошибки 0xC0209029 при обработке ввода «Назначение Вход» (47). Упомянутый компонент возвратил ошибку из метода ProcessInput. Ошибка имеет значение , относящееся к компоненту, но ошибка является фатальной и приведет к остановке работы задачи . Там может быть сообщения об ошибках, отправленные до этого с дополнительной информацией об ошибке . (SQL Server Импорт и Мастер экспорта)

ответ

2

Так, казалось бы, что с вычисляемый столбец, который содержит тип географии в определении не поддерживается (я пытался с другими видами, включая тип POINT и он работал отлично) , Это может быть связано с отсутствием поддержки, которую имеет SSIS для пространственных типов данных или вплоть до того, как SQL Server обрабатывает вычисленный столбец во время вставки пакета.

В любом случае я должен был создать решение моей проблемы и придумал следующую работу.

В моем пакете SSIS я начинаю с удаления вычисленного столбца, который вызывает проблемы. Затем я запускаю процесс загрузки данных Затем я снова добавляю вычисленный столбец в таблицу с помощью инструкции ALTER.

В настоящее время это работает нормально, хотя это может вызвать некоторые проблемы с автономными данными во время выполнения сценария. однако он должен быть достаточно простым, чтобы решить эту проблему.

Это означало, что мне пришлось создать более сложный пакет SSIS, чем просто использовать простой мастер «Импорт данных», предоставляемый SQL Server, и я все еще немного расстроен, что я не знаю фактической причины моей проблемы. Я просто нашел способ обойти это и двигаться дальше. Я по-прежнему был бы признателен, если бы кто-нибудь мог указать, почему я видел этот провал.

+0

Спасибо !!! Я боролся с этим около 2 дней! – bporter