2009-12-18 166 views
0

我想從.csv文件中提取數據。因爲它說我不能在64位機器上使用OPENROWSET:OLE DB提供程序「MSDASQL」尚未註冊

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

,並沒有在鏈接服務器沒有MSDASQL入門 - >提供商的SQL Server 2005的SSMS以同樣的方式第32位的人有。

可有人建議的類似方法從.csv文件中提取數據?

+0

也就是道道通很抱歉。 – JonathanWolfson 2009-12-18 20:25:00

+0

你可以安裝64位軟件包嗎? – gbn 2009-12-18 20:32:36

+0

不是沒有測試,等待等等。我可以想象一些簡單和簡單的事情,即將csv文件內容提取到臨時表是可行的,而不需要執行SQL函數以外的任何操作。我討厭在我的任務中涉及基礎設施工作,安裝工作,遠程桌面工作以及任何非計算機編程。 – JonathanWolfson 2009-12-18 20:37:13

回答

1

這是如何使用OPENROWSET從64位計算機上的.csv文件中提取數據。您可以通過一個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

修復您的環境會不會更簡單? – gbn 2009-12-21 17:11:12

+0

不,因爲它涉及超出SQL編程範圍的人員。 – JonathanWolfson 2009-12-24 20:07:41

+0

根據http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForODBCDatabases,提供的OLE DB被Microsoft認爲已過時。 – Fionnuala 2011-02-10 10:07:03

0

都是服務器64位?

你讓你安裝64-Bit OLEDB Provider for ODBC (MSDASQL)。我們確實讓我們的鏈接服務器工作(非SQL Server)。 And more info here

如果不是64位,那麼它可能是一個操作系統損壞,因爲它只是在32位Windows上有

編輯:

你有沒有去查看,如果服務器是64位,或把破損的是,使用select @@version,或簡單地根據個人的經驗和知識,忽視了潛在的修復...?

相關問題