1

CSV を SQL 2008 データベースにインポートする必要があります。フィールドの 1 つがディレクトリで、フィールド名に "," が含まれる行が 1600 行以上あるようです。このフィールドは、データベースで正しく分割されていません。合計で 100000 行を超えています。

これを回避してステートメントを変更するにはどうすればよいですか?

テーブルの作成は次のとおりです。

create table tablename
(
Directory       varchar(1000),
Name            varchar(1000),
Size            varchar(50),
CreationTime    varchar(100),
LastAccessTime  varchar(100),
LastWriteTime   varchar(100)
)

以下は、インポートに使用したコードです。

BULK
INSERT tablename
FROM 'c:\EmailCSVs\myfile.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO

ディレクトリ フィールドの例は次のようになります。

\\drive\share\nightly.175\savemail\user\(Monday, January 10, 2011, 500 PM)

CSV の行の例を次に示します。

"\\drive\share\nightly.175\savemail\user\(Monday, January 10, 2011, 500 PM)","Archive #1.1.pst","271360","1/14/2011 8:37:05 AM","6/1/2011 12:00:38 AM","1/14/2011 2:45:27 PM"
4

3 に答える 3

2

試してみてくださいFIELDTERMINATOR='","'

于 2012-11-06T14:13:00.580 に答える
2

最も簡単な方法は、csv ファイル内のカンマで区切られたすべてのフィールドをパイプ char | に置き換えることです。次に設定します

FIELDTERMINATOR = '|' 

これは、コンマをエスケープまたは削除できない場合に、多くの DBA が使用する標準的な手法です。

于 2012-11-06T14:14:46.500 に答える
0

フォーマット ファイルを使用して一括挿入を試みることもできます。これにより、特に各フィールドに異なるターミネータを指定できます。たとえば、ほとんどのフィールドでは fieldterminator が に設定されて,いるのに対し、問題のあるコンマを含むフィールドでは が設定されている可能性があります","

もう 1 つの可能性は、csv を Excel で開き、それにリンクされたサーバーを作成することです。

于 2012-11-06T14:14:09.373 に答える