powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зависает запрос OPENROWSET к Excel-файлу
6 сообщений из 6, страница 1 из 1
Зависает запрос OPENROWSET к Excel-файлу
    #40076944
newbie876454
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Делаю простой запрос:
Код: sql
1.
2.
3.
4.
5.
6.
SELECT *
FROM OPENROWSET (
	'Microsoft.ACE.OLEDB.12.0',
	'EXCEL 12.0; database=C:\Data\Book1.xlsx',
	'SELECT * FROM [Sheet1$]'
) AS S



Запрос зависает (делает вид что выполняется, и вечно висит, сколько ни жди).
Когда киляю с помощью 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.
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.16.0' , N'AllowInProcess' , 1
GO
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.16.0' , N'DynamicParameters' , 1
GO
exec sp_configure 'Show Advanced Options', 1
RECONFIGURE
exec sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE 


EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 0
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.16.0' , N'AllowInProcess' , 0



Куда копать?
...
Рейтинг: 0 / 0
Зависает запрос OPENROWSET к Excel-файлу
    #40076981
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
...
Рейтинг: 0 / 0
Зависает запрос OPENROWSET к Excel-файлу
    #40077068
Piles
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
попробуйте:
1. перед каждым чтением данных из excel открыть новое соединение, после закрыть.
2. установить предыдущий драйвер офиса - AccessDatabaseEngine_X64_2010
...
Рейтинг: 0 / 0
Зависает запрос OPENROWSET к Excel-файлу
    #40079309
newbie876454
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все советы испробовал, не помогло
...
Рейтинг: 0 / 0
Зависает запрос OPENROWSET к Excel-файлу
    #40079395
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie876454,

я сейчас немного в сторону отвечу:
если вдруг ну никак не выйдет решить задачу прямым чтением XLSX-файла через OPENROWSET, то можно было бы написать внешнюю программу, заливающую содержимое файла в таблицу БД
...
Рейтинг: 0 / 0
Зависает запрос OPENROWSET к Excel-файлу
    #40079513
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
newbie876454

Куда копать?


похоже на то, что ексель запрашивает что-то и ждет ответа: макросы в файле, надежный источник и т.п

как вариант:
1. запустите ексель от учетки скуля на сервере
2. откройте файл и посмотрите, что да как
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зависает запрос OPENROWSET к Excel-файлу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]