registrado proveedor microsoft linked for está equipo descargar create cannot sql sql-server export-to-excel openrowset

sql - proveedor - microsoft ace oledb 12.0 ole db



No se puede crear una instancia del proveedor OLE DB Microsoft.Jet.OLEDB.4.0 para el servidor vinculado nulo (4)

Estoy tratando de exportar desde mi Table datos a Excel través de T-SQL consulta T-SQL . Después de poca investigación se me ocurrió esto

INSERT INTO OPENROWSET (''Microsoft.Jet.OLEDB.4.0'', ''Excel 8.0;Database=G:/Test.xls;'', ''SELECT * FROM [Sheet1$]'') SELECT * FROM dbo.products

Cuando ejecuto la consulta anterior obtengo este error

Mensaje 7302, Nivel 16, Estado 1, Línea 7 No se puede crear una instancia del proveedor OLE DB "Microsoft.Jet.OLEDB.4.0" para el servidor vinculado "(nulo)".

Así que busqué en internet una solución, obtuve el siguiente enlace

https://blogs.msdn.microsoft.com/spike/2008/07/23/ole-db-provider-microsoft-jet-oledb-4-0-for-linked-server-null-returned-message-unspecified-error/

En el enlace anterior decían que necesitamos ser administradores para crear una carpeta en la carpeta TEMP unidad C ya que OPENROWSET crea algunos archivos o carpetas dentro de la carpeta TEMP

Estoy haciendo esto en My Home PC y soy el administrador. Todavía recibo el mismo error.

Detalles del servidor SQL

Microsoft SQL Server 2016 (RC1) - 13.0.1200.242 (X64) 10 de marzo de 2016 16:49:45 Copyright (c) Microsoft Corporation Enterprise Evaluation Edition (64 bits) en Windows 10 Pro 6.3 (compilación 10586:)

Cualquier sugerencia para solucionar el problema será muy apreciada.

Actualización: ya he configurado las Ad Hoc Distributed Queries y

Ejecuté las consultas a continuación

EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''AllowInProcess'', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''DynamicParameters'', 1 GO

ahora recibo este error

Mensaje 7438, Nivel 16, Estado 1, Línea 7 El proveedor OLE DB de 32 bits "Microsoft.Jet.OLEDB.4.0" no se puede cargar en proceso en un servidor SQL de 64 bits.



Ejecute las consultas a continuación para solucionar este problema:

EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''AllowInProcess'', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''DynamicParameters'', 1 GO


OK, lo hice funcionar para mí, y parece que SO me permitirá publicar hoy.

Tengo el servidor MS Sql 2012 y Office 2013. Esto parece ser muy complicado, por lo que es posible que deba ajustarse a sus versiones particulares.

  1. Descargue Microsoft.ACE.OLEDB.12.0 para Windows, versión de 64 bits que se encuentra aquí: https://www.microsoft.com/en-us/download/details.aspx?id=13255
  2. Instálalo en tu servidor.
  3. Verifique el usuario que ejecuta SQL Server y asegúrese de que tenga acceso al directorio temporal C: / Windows / ServiceProfiles / LocalService / AppData / Local / Temp si se trata de una cuenta de servicio local o C: / Windows / ServiceProfiles / NetworkService / AppData / Local / Temp si es una cuenta de servicio de red.
  4. Configure ''Consultas distribuidas ad hoc'' y habilite los archivos Microsoft.ACE.OLEDB esta manera:

Aquí están los comandos SP_CONFIGURE:

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''DynamicParam'', 1

En ''DynamicParameters'' más reciente de SQL Server 2014 , había utilizado ''DynamicParameters'' lugar de ''DynamicParam''

EXEC sp_MSset_oledb_prop N''Microsoft.ACE.OLEDB.12.0'', N''DynamicParameters'', 1

Asegúrese de registrar msexcl40.dll como este:

regsvr32 C:/Windows/SysWOW64/msexcl40.dll


Trabajos !!! Muchas gracias. Solo para el servidor Win de 64 bits 2012R2. Permítanme poner todo el script de trabajo repitiendo parcialmente los bits de arriba que no son fáciles (en mi caso) de combinar:

1) Descargue Microsoft.ACE.OLEDB.12.0 para Windows, versión de 64 bits que se encuentra aquí: https://www.microsoft.com/en-us/download/details.aspx?id=13255

2) Cree un archivo de Excel con las columnas respectivas (nombre y clase en este caso).

3) Ejecute el código a continuación:

sp_configure ''show advanced options'', 1; RECONFIGURE; GO sp_configure ''Ad Hoc Distributed Queries'', 1; RECONFIGURE; GO /* -- Not sure commented bits are necessary but I also have run them EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''AllowInProcess'', 1 GO EXEC master.dbo.sp_MSset_oledb_prop N''Microsoft.Jet.OLEDB.4.0'', N''DynamicParameters'', 1 GO -- below two lines failed with: Msg 2787, Level 16, State 1, Procedure sp_MSset_oledb_prop, Line 106 Invalid format specification: ''%1!.''. 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''DynamicParam'', 1 -- but works all two as below: 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 -- Succeded to run after success with Excel so does not looks like necessary */ INSERT INTO OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 8.0;Database=C:/testing.xlsx;'', ''SELECT Name, Class FROM [Sheet1$]'') SELECT [Name],[Class] FROM Qry_2 GO