Поставщик OLE DB "MSDASQL" не зарегистрирован - PullRequest
0 голосов
/ 18 декабря 2009

Я хотел бы извлечь данные из CSV-файла. Я не могу использовать OpenRowSet на 64-битной машине, потому что он говорит:

Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "MSDASQL" has not been registered.

и нет записи MSDASQL в разделе Связанные серверы -> Провайдеры SSMS SQL Server 2005 так же, как в 32-разрядных.

Может кто-нибудь предложить сопоставимый метод для извлечения данных из файла .csv?

Ответы [ 2 ]

1 голос
/ 18 декабря 2009

Это способ использования OPENROWSET для извлечения данных из файла .csv на 64-битном компьютере. Вы отправляетесь через 32-битный компьютер, который здесь называется LinkedServer32Bit, через OPENQUERY:

SELECT * FROM OPENQUERY
(
    LinkedServer32Bit, 
   'Select * FROM OPENROWSET 
    (
       ''MSDASQL'', 
       ''Driver={Microsoft Text Driver (*.txt; *.csv)}; 
         DefaultDir=C:\z\;'', 
       ''SELECT y FROM x.csv''
    )'
)
0 голосов
/ 18 декабря 2009

Оба сервера 64-битные?

У вас установлен 64-битный поставщик OLEDB для ODBC (MSDASQL) . Мы сделали, чтобы наши связанные серверы работали (не SQL Server). И более подробная информация здесь

Если не 64-битная, то это может быть повреждение ОС, потому что это просто там в 32-битной Windows.

Edit:

Вы действительно проверили, являются ли серверы 64-разрядными или неработающими, используя select @@version, или просто игнорируете возможные исправления, основанные на личном опыте и знаниях ...?

...