0

我想从 .csv 文件中提取数据。我不能在 64 位机器上使用 OpenRowSet,因为它说:

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

并且在 SQL Server 2005 SSMS 的Linked Servers -> Providers部分中没有 MSDASQL 条目,与 32 位的相同。

有人可以建议一种类似的方法来从 .csv 文件中提取数据吗?

4

2 回答 2

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''
    )'
)
于 2009-12-18T20:44:44.850 回答
0

两个服务器都是64位的吗?

你有你安装64-Bit OLEDB Provider for ODBC (MSDASQL)。我们确实让我们的链接服务器正常工作(非 SQL Server)。更多信息在这里

如果不是 64 位,则可能是操作系统损坏,因为它仅存在于32 位 Windows 上。

编辑:

您是否真的检查过服务器是否是 64 位的,或者损坏的服务器是否使用select @@version,或者只是忽略了基于个人经验和知识的潜在修复......?

于 2009-12-18T19:50:52.633 回答