おはよう、私の友人:
SQL Server でこのコードを使用して、テキスト ファイルをインポートまたは読み取りました。Office 2013 Professional (64 ビット) で 64 ビット マシンを実行しています。Microsoft Access データベース エンジン 2010 64 も使用しているため、すべて正常に動作します。
select *
from openrowset('MSDASQL'
,'Driver={Microsoft Access Text Driver (*.txt, *.csv)}'
,'select * from C:\MY_FOLDER\Databases\MY_FILES\mytext_file.txt')
問題は、Office 32 を搭載した別のコンピューターで作業を開始したことですが、そのコンピューターも 64 ビット マシンです。32ビットオフィスソフトウェアがインストールされたMicrosoft Access Database Engine 2010 64をインストールできないため、このコードは機能しません。最初に 32 ビットをアンインストールし、64 ビットとして再インストールする必要があります。
32 Office を削除/インストールするための Office ソフトウェアを持っていません。
他のオプションはありますか?
フォーマット ファイルを作成しようとしましたが、テキスト ファイルはサード パーティ製であり、フォーマットが常に壊れているため予測できず、エラーの場所が見つからないようです。私はこのファイルの品質を管理していません。
このページにあるもののほとんども試しましたが、うまくいきませんでした:
http://bradsruminations.blogspot.in/2011/01/so-you-want-to-read-csv-files-huh.html
これは更新です:
BULK INSERT を使用しました: しかし、挿入されたデータに二重引用符が含まれています。また、二重引用符ではなく、NULL も取得していません。
コード:
USE myDatabase;
GO
BULK INSERT my_schema.my_table
FROM 'C:\MY_FOLDER\Databases\MY_FILES\mytext_file.txt'
WITH (
DATAFILETYPE = 'CHAR',
FIELDTERMINATOR = ',',
ROWTERMINATOR = '0x0a',
FIRSTROW=2,
KEEPNULLS
);
GO