0

.lstファイルからテーブル名AxisATMにデータを挿入するクエリを作成しましたが、挿入しようとするとエラーが発生します。

最初を除くすべての行をLSTファイルから削除すると、1行が変更されたという成功メッセージが表示されます。

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 36. 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)".

クエリ:-

    BULK
INSERT dbo.ATMAxis
FROM 'c:\AGS_WINCORE_120901.lst'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = 'CHAR(13)'
)
GO

AGS_WINCORE_120901.lst:-

PRO1|......|00000000000|0| {Like it has 36 '|' separators}

Notepad++を使用して行末文字がCRLFであることを知っています

4

3 に答える 3

2

予想通り、問題は

ROWTERMINATOR = 'CHAR(13)'

私はそれをに変更しました

ROWTERMINATOR = '0x0A'
于 2012-09-07T12:56:56.257 に答える
0

行ターミネータが問題を引き起こしているようです。その場合は、それを交換/r/nChar(10)てみてください。問題は解決します。も確認してくださいchar(13)

詳細については、この MSDN スレッドを参照してください。

于 2012-09-07T12:29:37.963 に答える
0

エラーが示すように、列 36 にはテーブルの列の列 36 よりも多くの文字があります。その列のサイズを大きくする必要があります

于 2012-09-07T12:14:33.207 に答える