Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Загрузка таблицы Excel  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Добрый день!
Загружаю таблицу Excel в БД:
Select * into t FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:........х.xlsx;HDR=YES', 'SELECT * FROM [Лист1$]')

Подскажите, пожалуйста, такой момент:
1-ю строку сервер понимает как заголовок таблицы,по 2-ой определяет тип поля,а если значение n-й строки не является этим типом, то ставит NULL.
А можно ли как то добраться до этих ошибок, чтобы знать где ошибка?
Спасибо.
29 июн 15, 18:05    [17829561]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Lexx_SQL,

воспользуйтесь мастером импорта, в нем можно точно указать размерности приёмника. И доже сформировать SSIS пакет для повторного использования.
29 июн 15, 18:16    [17829625]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Владислав Колосов,
дело в том, что у меня должно это все быть программно: указал файл->загрузился на сервер.
30 июн 15, 08:47    [17831014]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lexx_SQL
по 2-ой определяет тип поля

Не по 2ой, а по нескольким первым записям. Количество задано в системной регистре



Lexx_SQL
А можно ли как то добраться до этих ошибок, чтобы знать где ошибка?

https://www.connectionstrings.com/excel/ - IMEX=1
30 июн 15, 09:32    [17831116]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Lexx_SQL,

если я правильно понял что вы хоите..то ето настраиваеться в реестре ,в ветке драйвера.. по какому количеству записей определять тип данных в колонке. По дефолту там стоит что-то то ли 10...не помню уже.
30 июн 15, 09:34    [17831121]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Maxx,
на самом деле задача стоит отследить какие данные не загрузились. Поэтому хотелось бы видеть лог этих ошибок...
30 июн 15, 10:29    [17831361]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lexx_SQL
на самом деле задача стоит отследить какие данные не загрузились. Поэтому хотелось бы видеть лог этих ошибок...

И как вы себе это представляете для унитарной команды ?
Типа select сам разобьет набор на два потока - прввильный и с обшибками ?
30 июн 15, 10:32    [17831374]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Lexx_SQL
Member

Откуда:
Сообщений: 566
Glory,
поэтому и обращаюсь по этому поводу на форум...
Нужно чтото типа как в Access реализован экспорт Excel в БД. Загружаются данные, а в отдельной таблице ошибки...
не могу понять как этот механизм реализован.
30 июн 15, 10:37    [17831398]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Glory
Member

Откуда:
Сообщений: 104751
Lexx_SQL
поэтому и обращаюсь по этому поводу на форум...

С такими просьбами надо обращаться к разработчикам

Lexx_SQL
Нужно чтото типа как в Access реализован экспорт Excel в БД. Загружаются данные, а в отдельной таблице ошибки...
не могу понять как этот механизм реализован.

Ну раз не знаете, то почему вы это требуете от select ?
30 июн 15, 10:40    [17831415]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка таблицы Excel  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Lexx_SQL
Владислав Колосов,
дело в том, что у меня должно это все быть программно: указал файл->загрузился на сервер.


Вносите имя файла в таблицу, выполняйте SSIS пакет. Не хотите писать пакет - пишите макрос на VBA и экспортируйте на сервер.
30 июн 15, 11:41    [17831852]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить