Импорт Excel в SQL Server

Я хочу обновить таблицу, используя данные из листа Excel. В моем файле excel всего два столбца: один с уникальным идентификатором, а другой со ссылкой. Я попытался использовать команду OPENROWSET для обновления моей таблицы, но у базы данных есть свойство безопасности, которое не позволяет мне это сделать.

Теперь моя идея состоит в том, чтобы создать новую таблицу в моей базе данных с этими двумя столбцами и позже обновить данные в моей таблице. Чтобы создать данные в моей базе данных, я попытался использовать мастер импорта в SQL Server, но когда я попытался это сделать, я получил следующие сообщения:

Ошибка 0xc020901c: Задача потока данных 1. Произошла ошибка с источником — Sheet1$.Outputs[Excel Source Output].Columns[PST_WSI_RefDes] в источнике — Sheet1$.Outputs[Excel Source Output]. Возвращенный статус столбца был следующим: «Текст был усечен или один или несколько символов не соответствовали целевой кодовой странице». (Мастер импорта и экспорта SQL Server)

Ошибка 0xc020902a: Задача потока данных 1: «Источник — Лист1$.Выводы[Исходный вывод Excel].Столбцы[PST_WSI_RefDes]» не удалось, поскольку произошло усечение и расположение строки усечения в «Источнике — Лист1$.Выводы[Исходный вывод Excel] .Columns[PST_WSI_RefDes]" указывает на ошибку при усечении. Произошла ошибка усечения для указанного объекта указанного компонента. (Мастер импорта и экспорта SQL Server)

Ошибка 0xc0047038: задача потока данных 1: код ошибки SSIS DTS_E_PRIMEOUTPUTFILED. Метод PrimeOutput для Source — Sheet1$ возвратил код ошибки 0xC020902A. Компонент вернул код ошибки, когда обработчик конвейера вызвал PrimeOutput(). Значение кода ошибки определяется компонентом, но ошибка является фатальной, и выполнение конвейера остановлено. Перед этим могут быть опубликованы сообщения об ошибках с дополнительной информацией о сбое. (Мастер импорта и экспорта SQL Server)

Я знаю, что эти сообщения относятся к моим данным, но в моем файле Excel 12 тысяч строк, и я не знаю, в какой строке проблема.

Как исследовать, какая линия имеет проблемы? Или есть другие способы импортировать данные из Excel?

Больше информации:

Образец данных, которые я пытаюсь импортировать

C7 (OP1 to OP12), C10 (OP1 to OP12), C3 (IP1 to IP16), C6 (OP1 to OP12), C10, C11, C12, C45, C49, C50, C14 (OP1 to OP12), C5 (OP1 to OP12), C9 (OP1 to OP12), C15 (OP1 to OP12), C51, C52, C54, C55

Максимальный размер поля: 1303 символа.

Формат таблицы импорта: я пробовал две конфигурации:

1 - уникальный идентификатор и nvarchar(2000)

2 - nvarchar(200) и nvarchar(2000)


person Iohann Oro    schedule 29.05.2015    source источник
comment
Попробуйте это.... 66pacific.com/sql_server_import_from_excel.aspx   -  person Vikram    schedule 29.05.2015
comment
Это метод, который я пытался использовать для импорта данных, и я получил сообщения, которые вы можете проверить в моем вопросе.   -  person Iohann Oro    schedule 29.05.2015
comment
Только что попробовал. Появляются те же сообщения об ошибках.   -  person Iohann Oro    schedule 29.05.2015
comment
В мастере импорта и экспорта SQL Server вы можете настроить типы исходных данных на вкладке «Дополнительно» (они становятся типами выходных данных при создании новой таблицы, но в остальном они просто используются для обработки исходных данных). Типы данных раздражающе отличаются от типов в MS SQL, вместо VARCHAR(255) это DT_STR, а ширина выходного столбца может быть установлена ​​на 255. Для VARCHAR(MAX) это DT_TEXT. Итак, в разделе «Источник данных» на вкладке «Дополнительно» измените тип данных любых столбцов-нарушителей с DT_STR на DT_TEXT.   -  person Vikram    schedule 29.05.2015


Ответы (2)


Попробуйте использовать Excel2MySQL, это избавило меня от многих головных болей.

person Juan Carlos Araya Portuguez    schedule 29.05.2015
comment
Это работает в любой базе данных? Это база данных MS SQL, а не MySQL. - person Iohann Oro; 29.05.2015

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

person Juan Carlos Araya Portuguez    schedule 29.05.2015