Consultar una BD de excel desde SQL Server

La cual me trae todos los campos de una BD de excel llamada Prueba RNC.xls y la hoja se llama Hoja1.
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:\Documents and Settings\tcerda\Desktop\PRUEBA RNC.xls', 'SELECT * FROM [hola1$]')
Pero al ejecutar mi consulta me devuelve el siguiente error.
Server: Msg 7399, Level 16, State 1, Line 1
OLE DB provider 'Microsoft. Jet. OLEDB. 4.0' reported an error. The provider did not give any information about the error.
OLE DB error trace [OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: The provider did not give any information about the error.].
Me gustaría saber que estoy haciendo mal..

1 respuesta

Respuesta
1
Prueba creando un linked server que apunte a tu archivo excel, en caso que sea una carga única o recurrente siempre podrías utilizar esta conexión reemplazando tu archivo.
DECLARE @RC int
DECLARE @server nvarchar(128)
DECLARE @srvproduct nvarchar(128)
DECLARE @provider nvarchar(128)
DECLARE @datasrc nvarchar(4000)
DECLARE @location nvarchar(4000)
DECLARE @provstr nvarchar(4000)
DECLARE @catalog nvarchar(128)
-- Set parameter values
SET @server = 'LS_EXCEL'
SET @srvproduct = 'Excel'
SET @provider = 'Microsoft.Jet.OLEDB.4.0'
SET @datasrc = 'c:\book1.xls'
SET @provstr = 'Excel 8.0'
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
Una vez que creaste tu Linked Server lo puedes consultar de la siguiente manera:
select * from ls_excel...[hoja1$]
En caso quieras saber como se llaman tus hojas puedes usar el siguiente comando:
Sp_tables_ex ls_excel --> Esto te retornara tus hojas para poder emplearla en tu consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas