ホームページ >データベース >mysql チュートリアル >SQL Server がリンク サーバーの Excel へのエクスポート用の OLE DB プロバイダーをインスタンス化できないのはなぜですか?

SQL Server がリンク サーバーの Excel へのエクスポート用の OLE DB プロバイダーをインスタンス化できないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-20 20:40:10445ブラウズ

Why Can't My SQL Server Instantiate the OLE DB Provider for Linked Server Exports to Excel?

リンク サーバーの OLE DB プロバイダーをインスタンス化できません

問題:

を試行したときT-SQL クエリを使用してテーブルから Excel にデータをエクスポートすると、「のインスタンスを作成できません」というエラーが表示されます。リンク サーバーの OLE DB プロバイダー Microsoft.Jet.OLEDB.4.0 null」が発生します。

原因:

このエラーは通常、次の場合に発生します:

  • ユーザーには、によって使用される一時フォルダーにアクセスするための十分な権限がありません。 OPENROWSET.
  • 32 ビット OLE DB プロバイダー (Microsoft.Jet.OLEDB.4.0) は、64 ビット SQL Server にインプロセスでロードできません。

64 ビット SQL のソリューションサーバー:

  1. Windows 64 ビット用 Microsoft.ACE.OLEDB.12.0 をダウンロードしてインストールします。
  2. 一時サーバーへのアクセスを許可します。ディレクトリ (ネットワーク サービス アカウントの場合は C:WindowsServiceProfilesNetworkServiceAppDataLocalTemp) を実行中のアカウントに追加します。 SQL Server。
  3. アドホック分散クエリを有効にし、Microsoft.ACE.OLEDB プロパティを構成します:

    SP_CONFIGURE 'show advanced options', 1;
    GO
    RECONFIGURE;
    SP_CONFIGURE 'Ad Hoc Distributed Queries', 1;
    GO
    RECONFIGURE;
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
  4. 登録するmsexcl40.dll:

    regsvr32 C:\Windows\SysWOW64\msexcl40.dll

追加メモ:

  • SQL Server 2014 以降 の代わりに「DynamicParameters」を使用してくださいEXEC sp_MSset_oledb_prop コマンドの「DynamicParam」。
  • クエリを実行しているユーザーに、「IMPERSONATE」や「ALTER ANY LINKED SERVER」などの必要な権限があることを確認してください。
  • それでも問題が発生する場合SQL Server 構成マネージャーの「OLE DB Provider」で「MessageBoxText」が「3」に設定されているかどうかを確認します。設定。「

以上がSQL Server がリンク サーバーの Excel へのエクスポート用の OLE DB プロバイダーをインスタンス化できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。