/ / Błąd serwera połączonego: Nie można odczytać danych Excel 2010 za pośrednictwem serwera sql 2008 - sql-server, excel, import

Błąd połączonego serwera: Nie można odczytać danych Excel 2010 za pośrednictwem serwera sql 2008 - sql-server, excel, import

Próbuję odczytać dane z pliku excel za pośrednictwem SQL Server 2008.

SELECT * FROM OPENROWSET("Microsoft.Jet.OLEDB.4.0",
"Excel 8.0;Database=C:Hierarchy.xlsx",
"SELECT * FROM [Group$]")

Daje mi dziwny błąd:

OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)" returned message "Unspecified error".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server "(null)".

Format arkusza Excel jest poprawny, ścieżka jest poprawna. nie wiem dlaczego to daje mi błąd.

Odpowiedzi:

1 dla odpowiedzi № 1

Znalazłem to rozwiązanie:

Zachowuję istniejący plik w zgodności wstecznej, a następnie uruchamiam go:

SELECT * FROM OPENROWSET("Microsoft.ACE.OLEDB.12.0",
"Excel 12.0;HDR=NO;Database=D:Hierarchy.xls;",
[Group$])

Nie wiem, dlaczego to działa, a inne nie, może ktoś ma dobry pomysł na ten temat.


0 dla odpowiedzi nr 2

Spróbuj użyć ACE OleDB i wypróbuj wersję 12.0

Przykład:

SELECT * FROM
OPENROWSET
(

"Microsoft.ACE.OLEDB.12.0",
"Data Source=C:Hierarchy.xlsx;Extended Properties="Excel 12.0;HDR=YES"",
"SELECT * FROM [Group$]"
)