2013-03-08 3 views
2

SQL Server 2008 R2의 가져 오기 마법사를 사용하여 Oracle 데이터베이스에서 SQL 서버로 데이터를 추출하는 dtsx 패키지를 만들었습니다. 마법사 단계에서 마이그레이션하는 동안 새 테이블을 만들기 위해 SQL Script 명령을 편집했습니다.명령 줄에서 실행 가져 오기 마법사로 생성 된 SSIS 패키지

마법사 단계에서 패키지 보호 수준 영역에 "중요한 데이터 저장 안함"을 선택했습니다.
생성 된 명령 줄은 다음과 같습니다

난 항상 다음과 같은 예외가 무엇입니까 그러나
dtexec.exe /FILE import_data.dtsx 
CONNECTION DestinationConnectionOLEDB; Data Source=source;Initial Catalog=TEST; 
      Provider=SQLNCLI10; Integrated Security=SSPI;Auto Translate=false; 
CONNECTION SourceConnectionAdoNET;Data Source=Oracle;PASSWORD=XYZ;User ID=Ned; 
CHECKPOINTING OFF 
REPORTING EWCDI 

: 나는 가져 오기 마법사에서 패키지 실행을 할 경우 "즉시 실행"확인란을 선택하여,

Error: 2013-03-08 09:54:55.65 
Code: 0xC0047062 
Source: Data Flow Task 1 Source - test_Table [1] 

Description: Microsoft.SqlServer.Dts.Runtime.DtsCouldNotCreateManagedConnecti 
onException: Could not create a managed connection manager. 

at Microsoft.SqlServer.Dts.Runtime.ManagedHelper.GetManagedConnection(String 
assemblyQualifiedName, String connStr, Object transaction) 
at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSConnectionManager100.AcquireCo 
nnection(Object pTransaction) 
at Microsoft.SqlServer.Dts.Pipeline.DataReaderSourceAdapter.AcquireConnections(Object  
transaction) 
at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostAcquireConnectio 
ns(IDTSManagedComponentWrapper100 wrapper, Object transaction) 
End Error 

을 , 그것은 잘 작동합니다. 이것은 내가 데이터베이스에 제대로 연결하지 못하게하는 연결 문자열에 누락 된 것이 있을지 모른다고 생각하게합니다.

SQL Server (대상 DB)의 경우 Windows 인증을 사용하여 Oracle에 대한 데이터베이스 및 사용자 이름/암호 (소스 DB)에 로그인합니다.

또한 32 비트 버전의 dtexec.exe를 사용하려고했지만 성공하지 못했습니다.

답변

1

이상한 이유는 연결을 만들 수없는 이유입니다. 나는 그것이 로그인 문제라면 그것이 말하기 때문에 드라이버를 의심합니다.

명시 적으로 32 비트 dtexec를 실행 했습니까? 이것은 매우 까다 롭고 내가 묻는 이유는 32 비트 런타임이 설치된 64 비트 환경에서 패키지를 수동으로 (두 번 클릭하여) 실행하면 기본적으로 32 비트 버전이 호출되기 때문입니다. 64 비트). 이는 PATH 환경 변수의 경로 때문입니다. 32 비트 프로그램 파일 (% ProgramFiles (x86) %)에 대한 디렉토리는 64 비트 프로그램 파일 (% ProgramFiles %)에 대한 디렉토리 경로 앞에 나열됩니다.

모든 도구 (BIDS 및 SSDT)는 32 비트 전용 응용 프로그램입니다. 64 비트 환경에서 사용할 수 있지만 사용하는 모든 데이터 공급자는 32 비트입니다. 64 비트 환경에서 SSIS 패키지를 사용하려면 적절한 버전의 데이터 공급자가 있어야합니다. 당신이하지 않으면; 32 비트 런타임을 사용하여 실행해야합니다.

+0

Hi Diego, yes 명령 줄에서 dtexec 명령의 32 비트 버전에 대해 fullpath를 명시 적으로 사용했습니다 ("32 비트 버전"을 읽을 수있는 dtexec.exe 명령으로 생성 된 첫 번째 줄에서). SQL Server 마법사에서 직접 가져 오기를 실행 한 이후 문제가 자격 증명과 관련이 있다고 생각합니다. 정상적으로 작동합니다. 수동으로 가져 오기를 실행할 수는 있지만 가능한 경우 더 "현대적인"/ 자동 방식을 선호했을 것입니다. – Francesco

관련 문제