|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
Делаю простой запрос: Код: sql 1. 2. 3. 4. 5. 6.
Запрос зависает (делает вид что выполняется, и вечно висит, сколько ни жди). Когда киляю с помощью kill, не реагирует. Приходится рестартить службу скл сервера. Тестирую на простейшем эксель-файле с 1 столбцом 1 строчкой. Путь к файлу проверил, все правильно, имя листа правильно. Полные права на эту папку SQL Server-у даны, на темповые папки тоже. На серваке установлен Excel 2016 и Access Runtime (битность 64 соблюдена у excel, драйвера и sql server). Свежие SP для SQL Server 2016 установлены. Когда делаю linked server через Create new в SSMS - зависает аналогично! Ошибок нигде и никаких. это тоже все пробовал и так и эдак Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 15:32 |
|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
newbie876454, нагуглилосьздесь: Microsoft ACE OLEDB 12.0 X64 Driver freezing using open rowset I have struggled with this on-and-off over a number of years. Even though SQL Server and Excel are best-of-breed products that have been around for 20 years or more, it is a cumbersome and error-prone process to import data from Excel into SQL Server. There are many pages of information on the web (probably 1000's) that attest to the difficulties that folks encounter when importing into SQL Server, and it is very disappointing that Microsoft cannot make the effort to ensure these products work together. Anyway I have found some things that help: * Apply the SQL Server configuration settings to allow ad-hoc distributed queries * Use the Microsoft.Ace.OLEDB.12.0 drivers for xls and xlsx files * Install the Microsoft Access Database Engine 2010 Redistributable (64 bit version), this requires there to be no 32 bit version of Office on the computer * Use sp_MSset_oledb_prop to set AllowInProcess = 1 (without this option, OPENROWSET sometimes causes the SQL Server Service to stop running) * Add the -g256 or -g512 startup parameter to the SQL Server Service (this gives more memory for the ACE drivers) It would be really useful if Microsoft could fully support importing Excel files into SQL Server. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2021, 17:40 |
|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
попробуйте: 1. перед каждым чтением данных из excel открыть новое соединение, после закрыть. 2. установить предыдущий драйвер офиса - AccessDatabaseEngine_X64_2010 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2021, 09:40 |
|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
Все советы испробовал, не помогло ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2021, 12:20 |
|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
newbie876454, я сейчас немного в сторону отвечу: если вдруг ну никак не выйдет решить задачу прямым чтением XLSX-файла через OPENROWSET, то можно было бы написать внешнюю программу, заливающую содержимое файла в таблицу БД ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2021, 16:24 |
|
Зависает запрос OPENROWSET к Excel-файлу
|
|||
---|---|---|---|
#18+
newbie876454 Куда копать? похоже на то, что ексель запрашивает что-то и ждет ответа: макросы в файле, надежный источник и т.п как вариант: 1. запустите ексель от учетки скуля на сервере 2. откройте файл и посмотрите, что да как ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2021, 09:51 |
|
|
start [/forum/topic.php?fid=46&fpage=21&tid=1684578]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 141ms |
0 / 0 |