programing

SSIS Excel 연결 관리자가 소스에 연결하지 못했습니다.

coolbiz 2023. 7. 29. 12:58
반응형

SSIS Excel 연결 관리자가 소스에 연결하지 못했습니다.

가져오기 마법사를 사용하여 Excel 가져오기 태스크를 만들고 실행할 수 있는 서버가 있습니다.서버에서 개발 중인 Visual Studio 2010 Integration Services 패키지를 사용하여 프로세스를 자동화하려고 합니다.

패키지를 설계할 때 문제가 발생합니다.Excel 연결을 추가하여 로컬 디스크의 Excel 파일을 가리켰습니다(이미 가져오기 마법사를 사용하여 성공적으로 가져온 파일과 동일).데이터 흐름에 Excel 소스를 추가하고 Excel 연결을 지정할 때, "Excel 시트 이름" 드롭다운으로 이동하면 "테이블 또는 뷰를 로드할 수 없습니다"가 표시되고 다음 오류가 발생합니다.

"연결 관리자의 테이블 정보를 검색할 수 없습니다.연결 관리자를 사용하여 소스에 연결하지 못했습니다..."

이 오류가 기록된 곳을 찾을 수 없고 오류가 발생하는 이유를 알 수 없습니다.디렉토리가 인증된 사용자에게 공유되고 파일이 사용 중이 아닙니다.

이 오류를 디버깅하는 방법이 있습니까?64비트 모드에서 실행하는 데 문제가 있을 수 있다는 것을 알고 있습니다만, 개발에 적용됩니까?

엑셀 2007 파일이라는 것을 덧붙여야 합니다.XLSX 및 연결이 Excel 2007으로 설정됩니다.

2019-11-08 아래 GavB841의 답변은 유망해 보입니다, 시도해보고 효과가 있으면 알려주세요. (저는 더 이상 이 분야에서 일하지 않습니다.)

32비트 버전의 엑셀이 설치되지 않은 것 같습니다.SSDT는 32비트 IDE입니다.따라서 SSDT에서 데이터에 액세스할 때 32비트 데이터 공급자가 사용됩니다.SSDT 외부에서 패키지를 실행할 때 64비트 모드(항상은 아니지만 대부분)로 실행되며 64비트 데이터 공급자를 사용합니다.

패키지를 64비트(목표로 해야 함)로 실행하려면 32비트 데이터 공급자(SSDT 개발용)와 64비트 데이터 공급자(운영 중인 패키지 실행용)가 모두 필요합니다.

다음에서 32비트 액세스 드라이버를 다운로드했습니다.

설치 후 워크시트를 볼 수 있었습니다.


출처:

해결 방법은 엑셀 파일을 엑셀 97-2003으로 저장하면 잘 작동한다는 것입니다.

저도 오늘 이 문제에 부딪혔지만 Excel 97-2003을 사용하는 것과는 다른 해결책을 찾았습니다.Maderia에 따르면 문제는 SSDT(SQL Server Data Tools)가 32비트 애플리케이션이며 32비트 공급자만 사용할 수 있지만 64비트 ACE OLE DB 공급자가 설치되어 있을 가능성이 높다는 것입니다.32비트 공급자를 설치하려고 할 수 있지만 64 및 32 버전을 동시에 설치할 수는 없습니다.Maderia가 제안한 해결책은 Excel 2007 파일을 가져오거나 가져오는 작업에 DelayValidation = TRUE를 설정하는 것이었습니다.

기사의 권장 사항인 SSIS를 사용한 Excel에서 데이터 추출을 통해 이 문제를 해결했습니다.

기사 링크에서 MS Access Database Engine 2010 32비트 드라이버를 다운로드했습니다.

프로젝트 합니다.Run64BitRuntime = False

SSMSCatalog ->> > SQL Server 2014 SSMS(In SQL Server 2014 -> SSISDB -> SSISDB -> -> SISMS)에서 사용됩니다.32 bit Runtime.

현재 SSIS 패키지는 VS 2013 및 SQL Server 2014 환경에서 모두 작동합니다.

간단한 해결 방법은 파일을 열고 Excel에서 저장 버튼을 누르는 것입니다(포맷을 변경할 필요가 없습니다).Excel에 저장되면 작동하기 시작하고 DFT에서 시트를 볼 수 있습니다.

이전 버전의 데이터 연결 드라이버(2007 Office System Driver: Data Connectivity Components)를 사용하고 연결 관리자 구성 창에서 Excel 버전 2007-2010을 선택해야 합니다.Office 2016용 최신 데이터 연결 드라이버가 손상된 것 같습니다.

여기 저에게 잘 맞는 해결책이 있습니다.

방금 엑셀 파일을 엑셀 97-2003 버전으로 저장했습니다.

아래에서 논의된 바와 같이:

솔루션:https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects 으로 이동하여 최신 버전을 설치하면 이 문제를 해결할 수 있습니다.

참조: https://developercommunity.visualstudio.com/content/problem/745991/could-not-load-file-or-assembly-microsoftdatawareh.html

이 문제에 대한 수정 사항이 내부적으로 구현되었으며 릴리스를 준비 중입니다.다운로드가 가능해지면 업데이트해 드리겠습니다.현재로서는 https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftAnalysisServicesModelingProjects 에서 최신 SSAS를 설치하여 문제를 해결하십시오.불편을 드려 죄송합니다.

저도 같은 문제에 직면했습니다.@Rishit 답변이 도움이 된 것 같습니다.이 문제는 32비트/64비트 버전의 드라이버와 관련이 있습니다.SSIS를 사용하여 .xlsx 파일을 SQL Server 테이블로 읽으려고 했습니다.

  • 내 기계는 MS Access와 함께 Win 10 기계에 Office 2016 64비트가 사전 설치되었습니다.
  • ssis를 사용하여 excel 97-2003(.xls) 파일을 읽을 수 있었지만 .xlsx 파일을 연결할 수 없습니다.
  • 제 요구 사항은 .xlsx 파일을 읽는 것이었습니다.
  • xlsx를 읽기 위해 AccessDatabaseEngine_X64를 설치했는데 다음 오류가 발생했습니다.

enter image description here

  • AccessDatabaseEngine_X64를 제거하고 AccessDatabaseEngine 32bit를 설치하여 문제를 해결했습니다.

제 대답은 @biscoop의 대답과 매우 비슷하지만 질문이나 다른 사람들에게 적용될 수 있기 때문에 조금 더 자세히 설명하려고 합니다.

저는 우리 웹앱 중 하나에서 추출한 .xls를 가지고 있었습니다.Excel 연결이 작동하지 않습니다(오류 메시지: "테이블 또는 뷰를 로드할 수 없습니다").참고로, 파일을 열 때 파일이 온라인 원본이며 내용을 활성화해야 한다는 경고가 표시됩니다.

.xlsx와 동일한 파일을 저장하려고 했는데 작동했습니다.같은 파일을 다른 이름으로 .xls로 저장하려고 했는데 역시 작동했습니다.그래서 마지막 테스트로 소스 .xls 파일만 열고 저장을 클릭하면 연결이 작동합니다.

간단한 답변: 파일을 열고 저장하는 것이 효과가 있는지 확인해 보십시오.

해결책

실제로 VS2019에서 SSIS를 사용하는 경우 문제가 발생할 수 있으므로 다음을 수행하십시오.

  1. Excel 시트로 이동하여 .xls 형식으로 다시 저장합니다.
  2. .xls 형식으로 사용하면 Microsoft Excel 97-2003 워크시트로 자동 입력됩니다.첨부된 사진과 같이.

enter image description here

시트 데이터를 로드할 수 있습니다.

엑셀365에서 만든 엑셀 파일이 사용 가능한 어떤 버전과도 호환되지 않는 것을 발견했습니다.엑셀 파일을 97-2003 버전으로 다시 저장했고 물론 드롭다운 목록에서 해당 버전을 선택하면 파일이 정상적으로 읽혔습니다.

다음을 시도할 수 있습니다.

Office 제거365

그런 다음 Access Database Engine 2016 재배포 가능 64비트만 설치합니다.

디버깅을 위한 프로젝트 구성 속성 설정 Run64BitRuntime = False

그건 작동할 거야.

Excel 소스의 경우 이 단계 전에 설정을 변경해야 합니다.Excel 파일을 2010 format.xlsx로 저장합니다.

디버깅을 위한 프로젝트 구성 속성 설정 Run64BitRuntime = False

Excel 소스를 끌어다 놓기 Excel 소스를 더블 클릭하여 연결합니다.테이블이나 뷰를 로드할 수 없는 동일한 오류가 발생할 수 있습니다.OK를 클릭합니다. Excel 소스를 마우스 오른쪽 버튼으로 클릭하고 고급 편집 표시를 클릭합니다.구성 요소 속성을 클릭합니다.열려 있는 행 집합을 볼 수 있습니다.오른쪽에 엑셀 시트 이름 예를 입력해야 합니다. 엑셀 시트 1에 시트 1$를 입력해야 합니다.I.E는 달러 기호로 끝납니다.확인을 클릭합니다.이제 당신은 목적지에 연결하는 다른 작업을 할 수 있습니다.

모든 곳을 조사한 끝에 저는 마침내 임시 해결책을 찾았습니다.액세스 드라이버를 설치하는 모든 솔루션을 시도했지만 여전히 동일한 문제에 직면하고 있기 때문입니다.

Excel 소스의 경우 이 단계 전에 설정을 변경해야 합니다.Excel 파일을 2010 format.xlsx로 저장합니다.

디버깅을 위한 프로젝트 구성 속성 설정 Run64BitRuntime = False

  1. Excel 소스를 끌어서 놓습니다.
  2. 엑셀 소스를 더블 클릭하고 엑셀을 연결합니다.테이블이나 뷰를 로드할 수 없는 동일한 오류가 발생할 수 있습니다.
  3. 확인 클릭
  4. Excel 소스를 마우스 오른쪽 버튼으로 클릭하고 고급 편집 표시를 클릭합니다.
  5. 구성 요소 속성을 클릭합니다.
  6. 열려 있는 행 집합을 볼 수 있습니다.오른쪽에 엑셀 시트 이름 예를 입력해야 합니다. 엑셀 시트 1에 시트 1$를 입력해야 합니다.I.E는 달러 기호로 끝납니다.확인을 클릭합니다.
  7. 이제 당신은 목적지에 연결하는 다른 작업을 할 수 있습니다.

저는 비주얼 스튜디오 2017, sql 서버 2017, 오피스 2016, 마이크로소프트 액세스 데이터베이스 2010 엔진 32bit를 사용하고 있습니다.OS 윈도우즈 1064비트.

이것은 일시적인 해결책입니다.많은 사람들이 이런 종류의 질문을 찾고 있기 때문입니다.마침내 알게 되었고 이 솔루션은 어느 웹사이트에서도 사용할 수 없습니다.

언급URL : https://stackoverflow.com/questions/23896901/ssis-excel-connection-manager-failed-to-connect-to-the-source

반응형