SQL ServerのBULK INSERT
タスクを使用してデータのインポートを何百回も実行しましたが、今回はなじみのないエラーが表示され、Googleで役に立たないトラブルシューティングを試みました。以下は、新しい行が改行文字で示されるコンマ区切りファイルで使用するコードです。
BULK INSERT MyTable
FROM 'C:\myflatfile.txt'
WITH (
FIELDTERMINATOR = ','
,ROWTERMINATOR = '/n')
GO
一貫して機能しますが、日付とレートが設定された単純なファイルでは、「メッセージ4863、レベル16、状態1、行1のバルクロードデータ変換エラー(切り捨て)」のエラーで失敗します。行1、列2(ColumnTwo )。」ファイルを見ると、なぜこれが失敗するのかわかりません(通常、Googleのトラブルシューティングでは、区切り文字が1行に複数回存在する可能性があり、このエラーが発生する可能性があります)。ファイルから、最初の10行を次に示します(最初の行で失敗することに注意してください)。
1961-01-01,8.2
1961-02-01,8.2
1961-03-01,7.4
1961-04-01,7.6
1961-05-01,7.8
1961-06-01,8.5
1961-07-01,9.1
1961-08-01,8.8
1961-09-01,8.4
1961-10-01,8.8
これらのデータを挿入しているテーブルには2つのフィールドがありますがVARCHAR(50)
、最初に切り捨てを確認したときにデータフィールドを展開しましたが、VARCHAR(2000)
影響はありませんでした。
CREATE TABLE MyTable (
ColumnOne VARCHAR(50),
ColumnTwo VARCHAR(50)
)
また、すべてのダッシュを削除して、それが問題を引き起こしていないかどうかを確認しようとしました(これと同じコードを使用してダッシュで多くのデータインポートを実行し、エラーなしで機能しますが)、それでも同じエラーメッセージを受け取りました。
直接インポートは(を介してTasks
)SSISと同じように機能しますが、まったく同じことを実行する必要があるため、このコードは失敗しますか?