1

SQL Express 2005 DB へのデータの一括挿入に問題があります。

私は次のコードを使用しています:

BULK INSERT [dbEPi].[dbo].[postcode]
FROM 'C:\Development\postnummerRegister.txt'
WITH 
(
    FIELDTERMINATOR = '\t',
    ROWTERMINATOR = '\n'
)

次のエラーが表示されます。

Msg 4866, Level 16, State 1, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 5. Verify that the field terminator and row terminator are specified correctly.
Msg 7399, Level 16, State 1, Line 1
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not give any information about the error.
Msg 7330, Level 16, State 2, Line 1
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

インポートしようとしているデータファイルは、ここにあります

どんな助けも感謝します。

更新 1 ここでは、私が使用しているデータの例を示します。

0001    OSLO    0301    OSLO    K
0010    OSLO    0301    OSLO    F
0014    OSLO    0301    OSLO    K
0015    OSLO    0301    OSLO    K
0016    OSLO    0301    OSLO    K
0017    OSLO    0301    OSLO    K
0018    OSLO    0301    OSLO    G
0020    OSLO    0301    OSLO    K
0021    OSLO    0301    OSLO    K

更新 2

私は今それらをインポートすることができました。テキストを新しいファイルにコピーし、これを test.txt として保存しただけです。なぜこれが機能するのかわかりません。ファイルのエンコードが原因である可能性があります。ファイルは UTF8 でエンコードされています。

4

1 に答える 1

2

まず、rowterminators0D 0Aは、ファイル内の Windows の行末のように見えます。(CR LF)。これは に翻訳されると思います\r\n。しかし、問題はまだ残っています。

MS からのホットフィックスがあるようですhttp://support.microsoft.com/kb/935446

于 2009-08-18T08:48:43.657 に答える