使用SQL Server 2008 R2中的導入嚮導,我創建了一個dtsx包以將數據從Oracle數據庫提取到SQL服務器。在嚮導步驟中,我編輯了SQL腳本命令以便在遷移過程中創建新表。從命令行運行使用導入嚮導生成的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(目標數據庫),我們使用Windows身份驗證登錄到Oracle(源數據庫)的數據庫和用戶名/密碼。
我也試過使用32位版本的dtexec.exe,但沒有成功。
嗨迭戈,是在命令行我明確地使用32位版本的dtexec命令(在由dtexec.exe命令生成的第一行我可以讀取「32位版本」)的完整路徑。我認爲這個問題與憑據有關,因爲直接從SQL Server嚮導執行導入,它工作正常。我們仍然可以手動運行導入,但如果可能的話,我會更喜歡更「現代」/自動化的方法。 – Francesco 2013-03-11 08:32:52