0

.csv ファイルからデータを抽出したいと思います。次のように表示されているため、64 ビット マシンでは OpenRowSet を使用できません。

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

また、32 ビットのものと同じように、SQL Server 2005 SSMS のLinked Servers -> ProvidersセクションにMSDASQL エントリはありません。

誰かが.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 ビットですか?

ODBC (MSDASQL) 用の 64 ビット OLEDB プロバイダーをインストールしました。リンク サーバー (非 SQL Server) を機能させるために行いました。そして詳しい情報はこちら

64 ビットでない場合は、32 ビット Windows にしか存在しないため、OS が破損している可能性があります。

編集:

サーバーが 64 ビットであるか、壊れているサーバーが を使用しているselect @@versionか、個人的な経験と知識に基づく潜在的な修正を単に無視しているかを実際に確認しましたか?

于 2009-12-18T19:50:52.633 に答える