4

これは私のSQLです

BULK INSERT dbo.Account FROM 'G:\Import\Account3.txt'
WITH
(
    FIELDTERMINATOR = '" | "'
)
GO

SQLを実行すると、このエラーが発生しました

メッセージ4866、レベル16、状態1、行1
バルクロードが失敗しました。

行1、列1のデータファイルの列が長すぎます。フィールドターミネータと行ターミネータが正しく指定されていることを確認してください。

メッセージ7399、レベル16、状態1、行1
リンクサーバー "(null)"のOLEDBプロバイダー"BULK"がエラーを報告しました。プロバイダーはエラーに関する情報を提供しませんでした。

メッセージ7330、レベル16、状態2、行1
リンクサーバー "(null)"のOLEDBプロバイダー"BULK"から行をフェッチできません。

私を助けてください。私はすでに多くの方法を試しましたが、それでも同じエラーが発生します。

4

2 に答える 2

3

SQL の例から、行を互いに区別する方法を指定する ROWTERMINATOR ステートメントが欠落しているようです。

クエリは次のようになります

BULK INSERT dbo.Account FROM 'G:\Import\Account3.txt'
WITH
(
FIELDTERMINATOR = '" | "',
ROWTERMINATOR = '\r\n'
)
GO
于 2015-04-17T11:49:44.583 に答える
-1

これを試して

BULK
INSERT dbo.Account 
FROM 'G:\Import\Account3.txt'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '\n'
)
GO
于 2013-01-23T10:00:19.243 に答える