固定長のデータを含むテキストファイルがあります。これが私のテーブルです:
create table myBulkInsert(
MaxData Varchar(Max)
)
x.fmtに含まれるもの:
10.0
1
1 SQLCHAR 8 0 "" 1 MaxData SQL_Latin1_General_CP1_CI_AS
私が以下を発行するとき:
bulk insert myBulkInsert
from 'C:\inetpub\ftproot\TextFile.txt'
WITH (
FORMATFILE = 'C:\inetpub\ftproot\Client.fmt'
);
私は得る:
メッセージ4866、レベル16、状態17、行1バルクロードが失敗しました。行1、列1のデータファイルの列が長すぎます。フィールドターミネータと行ターミネータが正しく指定されていることを確認してください。メッセージ7399、レベル16、状態1、行1リンクサーバー "(null)"のOLEDBプロバイダー"BULK"がエラーを報告しました。プロバイダーはエラーに関する情報を提供しませんでした。メッセージ7330、レベル16、状態2、行1リンクサーバー "(null)"のOLEDBプロバイダー"BULK"から行をフェッチできません。
奇妙なことに、カンマ区切りのテキストファイルで一括挿入を使用していて、うまく機能するので、アクセス許可エラーではないと思います。
最大値を持つ1つのフィールドとしてそれを持っている理由は、例を単純化するためです。この1つのフィールドが機能するようになったらすぐに、すべてのフィールドとその長さを含むようにレイアウトを変更します。