この記事は、Oracle 接続マネージャーを使用するときに発生する問題を解決するのに役立ちます。
元の製品バージョン: SQL Server
元の KB 番号: 2009312
現象
どちらの SQL Server でも、次のシナリオを検討してください。
- Business Intelligence Development Studio (BIDS) を使用して SQL Server Integration Services (SSIS) パッケージを設計します。
- パッケージでは、ORACLE 用 OLEDB プロバイダーを使用して Oracle サーバーに接続し、Oracle クライアント 10G または 11G を使用します。
- パッケージ構成ファイルを使用して、実行時に Oracle 接続のすべての接続プロパティを設定します。
このシナリオでは、BIDS からパッケージを実行すると、次のエラー メッセージが表示されます。
"Error: 0xC0202009 at Package, Connection manager "OLEDB Provider": SSIS Error Code DTS_E_OLEDBERROR。 OLE DB エラーが発生しました。 エラー コード: 0x80040E21。
OLE DB レコードを使用できます。 ソース: "Microsoft OLE DB サービス コンポーネント" Hresult: 0x80040E21説明: "複数ステップの OLE DB 操作でエラーが発生しました。 各 OLE DB の状態の値を確認してください。 作業は行われませんでした。"。
エラー: データ フロー タスクで0xC020801C、Oracle OLEDB ソース [1]: SSIS エラー コード DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。 接続マネージャー "OLEDB Provider" への AcquireConnection メソッドの呼び出しが、エラー コード 0xC0202009で失敗しました。 このエラーの前に、AcquireConnection メソッドの呼び出しが失敗した理由の詳細が記載されたエラー メッセージが報告されている可能性があります。
エラー: データ フロー タスク (DTS) で0xC0047017。パイプライン: コンポーネント "Oracle OLEDB ソース" (1) の検証に失敗し、エラー コード 0xC020801Cが返されました。
原因
これは、構成ファイルの Initial Catalog プロパティが Oracle プロバイダーによって認識されないためです。 構成ファイル内の Oracle 接続マネージャーの場合、これは空白です。
たとえば、BIDS を使用して Oracle サーバーに接続する SSIS パッケージを作成すると、次の XML 構成ファイルが生成されます。
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="MyUserName" GeneratedFromPackageName="MyPackage" GeneratedFromPackageID="<guid>" GeneratedDate="2/22/2010 9:00:00 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[MyConnectionManager].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=MyServerName;User ID=MyAccount;Password=MyPassword; **Initial Catalog=**; Provider=MSDAORA.1;Persist Security Info=True;</ConfiguredValue>
</Configuration>
</DTSConfiguration>
解決方法
BIDS デザイナーを使用して構成ファイルを作成または編集するときにInitial Catalog のチェック ボックスを削除します。
たとえば、「原因」セクションに示されている構成ファイルの例の固定バージョンは次のようになります。
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo GeneratedBy="MyUserName" GeneratedFromPackageName="MyPackage" GeneratedFromPackageID="<guid>" GeneratedDate="2/22/2010 9:00:00 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Connections[MyConnectionManager].Properties[ConnectionString]" ValueType="String">
<ConfiguredValue>Data Source=MyServerName;User ID=MyAccount;Password=MyPassword;Provider=MSDAORA.1;Persist Security Info=True;</ConfiguredValue>
</Configuration>
</DTSConfiguration>