2011-10-02 3 views
3

SSIS에서 Microsoft.Jet.OLEDB.4.0 드라이버를 사용하여 FlatFiles에 액세스 할 수 있습니까?Jet를 통한 SSIS FlatFile 액세스

FlatFile Source를 통한 액세스가 훨씬 뛰어납니다. Jet 드라이버에서 수행 할 수있는 방법이있는 경우입니다.

답변

3

이것은 흥미로운 질문으로 보였습니다. 그래서 약간의 문제가있었습니다. 예, JET 드라이버를 사용하여 플랫 파일을 읽을 수 있습니다. HOW TO: Use Jet OLE DB Provider 4.0 to Connect to ISAM Databases 열기 텍스트 섹션 참조

기본적으로 파일은 CSV 일 것으로 예상되지만 연결 관리자가 가리키는 것과 동일한 폴더에있는 Schema.INI에 서식을 지정할 수 있습니다.

CM에 대해주의해야 할 것은 특정 파일이 아니라 텍스트 파일의 폴더를 가리키는 것입니다.

연결 관리자를 만들 때 기본 OLE DB \ Microsoft Jet 4.0 OLE DB 공급자를 선택한 후 모두 탭으로 이동 한 다음 확장 속성을 추가해야합니다. 필자는 CSVDelimited 및 단지 Delimited (필자의 샘플 파일이 CSV 였기 때문에)의 FMT로 작동하도록 만들 수있었습니다.

enter image description here

소스 파일에서 탭의 쉼표를 교환하고, 연결 관리자 속성에 작업을하지 않은 것으로 보입니다 TabDelimited에서 FMT를 설정하지만 표시된 BOL 기사로있는 schema.ini 파일을 생성하지 않았다 .

연결 문자열을 사용하여 텍스트 파일의 모든 특성을 정의 할 수는 없습니다. 예를 들어, 고정 폭 파일을 열거 나 쉼표 이외의 구분 기호를 사용하려면 Schema.INI 파일에서 이러한 모든 설정을 지정해야합니다. 패키지 디자인 타임에 잘 작동하지만이 실행되면 배를 상승, 제트 드라이버 만 사용할 수 32 비트 그렇다면

내 CM에 ConnectionString을의 전체 값은

Data Source=C:\tmp\so\;Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties="text;HDR=Yes;FMT=CSVDelimited;"; 

이하 오류 메시지에서 알 수 있듯이 64 비트 시스템에서

SSIS 오류 코드 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER. 연결 관리자 에 대한 AcquireConnection 메서드 호출이 "OLEDB_JET"오류 코드 0xC0209303으로 실패했습니다. AcquireConnection 메서드 호출이 실패한 이유에 대한 자세한 내용과 함께이 전에 게시 된 개의 메시지에 오류가있을 수 있습니다.

이에 대한 해결책은 그것을 밖으로 시도

C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn>.\dtexec /file C:\sandbox\SSISHackAndSlash\SSISHackAndSlash\so_JetFlatFile.dtsx 
+0

안녕 i've 같은 32 비트 모드에서 명령 줄에서 실행하는 것입니다, 그것을 작동합니다. 그냥 빨리 질문을 : OleDB DataSource, 테스트 연결을 사용했습니다 succeded. 그 후에 OleDB 소스를 추가하고 정의 된 OleDB DataSource를 FlatFile에 사용하고 미리보기 => 오류를 누르십시오. CSV가 너무 들었습니다. – kamahl