次の方法で共有


Oracle 接続マネージャーを使用する場合のDTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER

この記事は、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>

詳細

OLE DB Provider for ODBC の既知の制限事項