데이터를 가져 오려면 다른 폴더에 Excel 템플릿을 복사해야합니다.SQL Server 2008 R2에서 OPENROWSET을 사용하여 Excel로 가져올 수 없습니다.
문 1 :
exec xp_cmdshell 'copy C:\inetpub\wwwroot\app_data\export_templates\myExport.xlsx C:\inetpub\wwwroot\app_data\tmp\myExport130301172218.xls'
문장 2 : I 별도로 위의 SQL 문을 실행하면, 그들은 잘 작동
insert into
OPENROWSET('Microsoft.ACE.OLEDB.12.0'
, 'Excel 12.0;Database=C:\inetpub\wwwroot\app_data\tmp\myExport130301172218.xls;'
, 'SELECT * FROM [Sheet1$]')
SELECT * FROM vw_shrub
다음은 내가 사용이 SQL 문이다. 그러나 함께 실행하면 다음과 같은 오류가 발생합니다.
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "The Microsoft Access database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly. If 'Sheet1$' is not a local object, check your network connection or contact the server administrator.".
Msg 7350, Level 16, State 2, Line 2
Cannot get the column information from OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".
문제는 단일 응용 프로그램에서 모두 응용 프로그램에서 전달하려는 것입니다. 그러므로 나는 그들을 함께 실행해야한다. 나는 그들 사이에 GO를 추가하면 Management Studio에서 함께 실행할 수있는 것으로 나타났습니다. 하지만 응용 프로그램에서 요청을 전달하면 GO를 사용할 수 없습니다.
복사의 경로가 OPENROWSET의 경로와 다른 이유 –
Speot 죄송합니다. 그것은 내 질문에 표본을 쓸 때 실수였다. 그러나 문제는 여전히 서있다. 나는 그 질문을 갱신했다. 고맙습니다. – Fred
저장 프로 시저를 만들고 대신 응용 프로그램에서 프로 시저를 호출하지 않는 이유 – Raymund