Я успешно использую OPENROWSET уже довольно давно, но теперь я столкнулся с проблемой, которую не могу решить.Я использую SQL Server 2017 Express.
Я выполняю следующий запрос:
SET @SQL = '
INSERT INTO MyTable SELECT *
FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0; HDR=YES; FIRSTROW=1; FORMAT=CSV Database='+@filePath+''',
''SELECT * FROM [MyFile_'+@MonthNo+@YearNo+'$A1:I5000]'')'
exec (@SQL)
Полученное сообщение об ошибке:
(0затронутые строки) Поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" вернул сообщение «Внешняя таблица не в ожидаемом формате.».Сообщение 7303, уровень 16, состояние 1, строка 19 Не удалось инициализировать объект источника данных поставщика OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(ноль)".
ФайлCSV (с разделителями-запятыми), сохраненный локально на том же компьютере, на котором работает SQLServer.Сам файл загружается с общего ресурса FTP.
Теперь сложная часть - если я открою файл в excel и оставлю его открытым, а затем выполню приведенный выше запрос, импорт будет работать нормально.Обычно у меня другая проблема - если у меня открыт файл, я не могу его импортировать, но это не тот случай.
Обратите внимание, что у меня есть несколько других файлов, которые яв состоянии успешно читать, используя тот же запрос.
Любая помощь будет оценена.