** 오류메시지
서버: 메시지 7399, 수준 16, 상태 1, 줄 1
OLE DB 공급자 'Microsoft.Jet.OLEDB.4.0'이(가) 오류를 보고했습니다. 공급자에서 오류에 관한 정보를 주지 않았습니다.
OLE DB 오류 추적 [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 공급자에서 오류에 관한 정보를 주지 않았습니다.].
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 5.0;Database=c:\SampleCode.xls', Sheet1$)
정상적으로 위 코드를 작동시키기 위해서는 반드시 아래의 조건을 지켜준다.
1. 데이터베이스 서버가 작동하는 드라이브에 파일이 존재해야 한다.
2. 시트명뒤에 $ 표시를 반드시 해준다.
====================================================================================================
** 로컬테스트 **
나같은 경우에는 정상적으로 MSSQL 도 설치하고 파일에도 이상이 없고 시트명도 Sheet1$ 로 지정하였다.
하지만 파티션을 나누어서 C 와 D 로 사용을 하고 있는 문서폴더가 D 드라이브에 존재했다.
그래서 쿼리를 날려야 하는 파일이 D 드라이브에 있었는데 혹시나 하는 마음에 C 드라이브로
옮기고 쿼리를 날렸더니.. 정상작동. D 드라이브에 있었을때는 위와 같은 ** 오류.
INSERT INTO SAMPLE_ENTITY (CODE1, CODE2, CODE3, DESCRIPTION )
SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','excel 8.0;database=c:\SampleCode.xls;sa;', Sheet1$)
AS a
====================================================================================================
'DataBase > MS-SQL' 카테고리의 다른 글
Code Formatter - 코드정렬 (0) | 2013.07.03 |
---|---|
링크드 서버로 업데이트(Update) 조인해서 다수의 데이터를 조건별로 수정할때 (0) | 2013.05.29 |
자주 쓰이는 시스템 뷰 (0) | 2013.05.29 |
MSSQL [@@IDENTITY, SCOPE_IDENTITY, IDENT_CURRENT] (0) | 2013.05.29 |
TRANSACTION[트랜잭션] - 롤백 처리에 대해서 (0) | 2013.05.29 |
댓글