2

Excel が CSV を正しく保存していなかったため、Google ドライブからそのタイプとしてダウンロードした UTF-8 CSV ファイルを一括挿入しようとしています。

Google ドライブで生成された CSV ファイルをメモ帳 ++ で開いて移動したところ、行ターミネータの改行View > Show Symbol > Show All Charactersが含まれていることがわかりました (ここで間違っている場合は修正してください)。LF

そこで、以下を試しましたが、一時テーブルにレコードがありません。これは、デフォルトの行ターミネータ (指定しない場合は「\r\n」) を使用すると、UTF-8 ではない他の CSV ファイルで機能します。

また、行ターミネータに「\t」、「\r\n」、「\r」、および「\0」を試しましたが、データ ファイル タイプの有無にかかわらず..何も機能していないようです。これは、一時テーブルのフィールド タイプと関係がありますか? または、他の何か?

CREATE TABLE #TEMPResourceContents (
    [ResourceName] [nvarchar](250) NOT NULL,
    [Language] [nvarchar](250) NOT NULL,
    [Content] [nvarchar](max) NOT NULL
)
GO

BULK INSERT #TEMPResourceContents 
FROM 'C:\import-resources.csv'
WITH
(FIRSTROW = 2, DATAFILETYPE = 'widechar', FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')
GO

SELECT * FROM #TEMPResourceContents
4

1 に答える 1

4

ちなみにBULK INSERTはUTF-8に対応していません。

参照リンク MSDN を参照してください

参照リンクを参照

于 2013-01-01T23:47:32.600 に答える