SQL Server 2008 R2 からのインポート ウィザードを使用して、Oracle データベースから SQL サーバーにデータを抽出する dtsx パッケージを作成しました。ウィザードの手順では、移行中に新しいテーブルを作成するために SQL スクリプト コマンドを編集しました。
ウィザードの手順で、パッケージの保護レベル領域で [機密データを保存しない] を選択しました。
生成されるコマンド ラインは次のとおりです。
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) のユーザー名/パスワードを使用します。
dtexec.exe の 32 ビット バージョンも使用しようとしましたが、成功しませんでした。