У меня есть два запроса.
Этот первый запрос создает файл .csv
в папке C:\...
без ошибок:
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Temp\TEMP_SQL_FOLDER\T-SQL to csv\;HDR=YES;FMT=Delimited','SELECT * FROM [test3.csv]')
SELECT Id, PatientNumber, Title_Id, FirstName, LastName, Gender_Id
FROM PPM2..Activity_Patient ap
Этот второй запрос должен выполнять то же самое, за исключением того, что оператор SELECT
заменяется вызовом процедуры:
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\Temp\TEMP_SQL_FOLDER\T-SQL to csv\;HDR=YES;FMT=Delimited','SELECT * FROM [test3.csv]')
EXEC dbo.PPMLoad_MediRecOSRServices @FinancialYear='2020'
Второй оператор не работает и выдает эту ошибку:
Msg 7390, уровень 16 Состояние 2, строка 10
Запрошенная операция не может быть выполнена, поскольку поставщик OLE DB "Microsoft.ACE.OLEDB.12.0" для связанного сервера "(null)" не поддерживает требуемый интерфейс транзакции.
У меня включены необходимые настройки:
USE [master]
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
Второй запрос просто не запускается. Я не использую никаких связанных серверов. Это просто простой экспорт на локальный C: диск.
Есть идеи?