Heim >Datenbank >MySQL-Tutorial >Warum kann mein SQL Server den OLE DB-Anbieter für Verbindungsserverexporte nach Excel nicht instanziieren?

Warum kann mein SQL Server den OLE DB-Anbieter für Verbindungsserverexporte nach Excel nicht instanziieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-20 20:40:10408Durchsuche

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

OLE DB-Anbieter für Verbindungsserver kann nicht instanziiert werden

Problem:

Beim Versuch Beim Exportieren von Daten aus einer Tabelle nach Excel mithilfe einer T-SQL-Abfrage wird der Fehler „Es kann keine Instanz des OLE DB-Anbieters erstellt werden“ angezeigt „Microsoft.Jet.OLEDB.4.0 für Verbindungsserver null“ tritt auf.

Ursache:

Dieser Fehler tritt normalerweise auf, wenn:

  • Die Dem Benutzer fehlen ausreichende Berechtigungen, um auf den von OPENROWSET verwendeten temporären Ordner zuzugreifen.
  • Der 32-Bit-OLE DB-Anbieter (Microsoft.Jet.OLEDB.4.0) kann nicht prozessintern auf einem 64-Bit-SQL-Server geladen werden.

Lösung für 64-Bit-SQL-Server:

  1. Laden Sie Microsoft.ACE.OLEDB.12.0 für Windows herunter und installieren Sie es 64-Bit.
  2. Gewähren Sie dem Konto, auf dem SQL Server ausgeführt wird, Zugriff auf das temporäre Verzeichnis (C:WindowsServiceProfilesNetworkServiceAppDataLocalTemp für ein Netzwerkdienstkonto).
  3. Aktivieren Sie verteilte Ad-hoc-Abfragen und konfigurieren Sie Microsoft.ACE.OLEDB Eigenschaften:

    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 registrieren:

    regsvr32 C:\Windows\SysWOW64\msexcl40.dll

Zusätzlich Hinweise:

  • Für SQL Server 2014 und höher, verwenden Sie „DynamicParameters“ anstelle von „DynamicParam“ im Befehl EXEC sp_MSset_oledb_prop.
  • Stellen Sie sicher, dass der Benutzer, der die Abfrage ausführt, über die erforderlichen Berechtigungen verfügt, z. B. „IMPERSONATE“ und „ALTER ANY“. VERBUNDENER SERVER.“
  • Wenn weiterhin Probleme auftreten, überprüfen Sie, ob „MessageBoxText“ ist im SQL Server-Konfigurationsmanager unter „OLE DB-Anbietereinstellungen“ auf „3“ gesetzt.

Das obige ist der detaillierte Inhalt vonWarum kann mein SQL Server den OLE DB-Anbieter für Verbindungsserverexporte nach Excel nicht instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn