Результаты хранимой процедуры в Excel - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть требование предоставить результаты моего анализа на разных листах в одном файле Excel. В настоящее время я вручную копирую и вставляю результаты в Excel (10 листов). Как я могу использовать хранимую процедуру для автоматизации этого?

Я пробовал что-то вроде ниже.

insert into OPENROWSET(
   'Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=D:\Results\test.xls;;HDR=YES', 
   'SELECT * FROM [Sheet1$]')
select * from MY_TABLE WHERE ATTR='YES'

insert into OPENROWSET(
   'Microsoft.Jet.OLEDB.4.0', 
   'Excel 8.0;Database=D:\Results\test.xls;;HDR=YES', 
   'SELECT * FROM [Sheet2$]')
select * from MY_TABLE WHERE ATTR='No'

Это дает мне ошибку

SQL Сервер заблокировал доступ к ЗАЯВЛЕНИЮ 'OpenRowset / OpenDatasource' компонента 'Ad Ho c Распределенные запросы'

Я попытаюсь получить доступ от администратора. Надеюсь, после этого он будет работать? Но есть ли другой способ сделать это? Также я хочу знать, как это сделать в процедуре предоставления результатов на разных листах.

1 Ответ

0 голосов
/ 07 апреля 2020

Попробуйте этот код:

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'AllowInProcess', 1
GO 
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.Jet.OLEDB.4.0', N'DynamicParameters', 1
GO 
...