파일 디렉토리에서 OpenRowSet (@Database)으로 구문 분석 할 동적 SQL을 사용하려고합니다. 지금 Excel 파일에 대한 하드 코딩 된 디렉터리가 있습니다. 최종 결과는 사용자의 파일을 가져 와서 SQL 테이블로 가져 오는 응용 프로그램을 만드는 것입니다. 거기에서 내가 합병하고 일치/일치하지 않음 (어떤 것이 제대로 작동하는지)입니다. 이것은 퍼즐의 마지막 부분입니다. 오류 메시지가 내 파일을 찾고있는 이유를 모르겠다 "C : \ WINDOWS를 \ system32를 \"OpenRowSet 내부의 동적 SQL이 Temp 테이블에 삽입되었습니다.
내 현재의 에러 메시지는 다음과 같습니다
OLE DB 공급자 "Microsoft.ACE.OLEDB. 12.0 "연결된 서버"(null) "returned message"Microsoft Access 데이터베이스 엔진이 'C : \ WINDOWS \ system32 \ C : \ Users \ GrimRieber \ Desktop \ isi test.xlsx'개체를 찾을 수 없습니다. 'C : \ WINDOWS \ system32 \ C : \ Users \ GrimRieber \ Desktop \ isi test.xlsx'가 로컬 개체가 아닌 경우 네트워크 연결을 확인하거나 서버에 연결하십시오 관리자.".
메시지 7303, 수준 16, 상태 1, 줄 1
OLE DB 공급자 연결된 서버 "Microsoft.ACE.OLEDB.12.0" "(널)"의 데이터 원본 개체를 초기화 할 수 없습니다.
코드 :
declare @Database varchar(max)
select @Database = 'C:\Users\GrimRieber\Desktop\isi test.xlsx'
declare @sql varchar(Max)
select @sql = 'SELECT * FROM OPENROWSET(
''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0; Database= ' + @Database + '; HDR=YES; IMEX=1'',
''SELECT [Vendor],[VendorName],[Material],[MaterialName],[Supplier Stock Num],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[Year]FROM [Data$]''
)'
IF OBJECT_ID('tempdb.dbo.#TempScorecardInventorySold', 'U') IS NOT NULL
DROP TABLE #TempScorecardInventorySold;
CREATE TABLE #TempScorecardInventorySold
(
[Vendor] [varchar](50) NULL,
[VendorName] [varchar](50) NULL,
[Material] [varchar](50) NULL,
[MaterialName] [varchar](50) NULL,
[Supplier Stock Num] [varchar](50) NULL,
[01] [nVarchar](50) NULL,
[02] [nVarchar](50) NULL,
[03] [nVarchar](50) NULL,
[04] [nVarchar](50) NULL,
[05] [nVarchar](50) NULL,
[06] [nVarchar](50) NULL,
[07] [nVarchar](50) NULL,
[08] [nVarchar](50) NULL,
[09] [nVarchar](50) NULL,
[10] [nVarchar](50) NULL,
[11] [nVarchar](50) NULL,
[12] [nVarchar](50) NULL,
[Year] [Int] Null
) ON [PRIMARY];
INSERT INTO [dbo].#TempScorecardInventorySold ([Vendor],[VendorName],[Material],[MaterialName],[Supplier Stock Num],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[Year])
EXECUTE(@sql)
빠른 응답 감사합니다. OPENDATASOURCE는 내가 가진 문제를 해결했습니다. Data $ 끝 부분에 진드기를 추가하면 모든 작업이 완료되었습니다. –
좋아요! 다행히 도울 수있어. 그러나 재미있는 것은 처음에는 효과가 없습니다. 설정/버전 항목 일 수 있습니다. – Parfait