2016-08-10 33 views
0

が私のテーブル定義である:SQL ServerのBULKのINSERT:ここでは一括ロードデータ変換エラー(指定されたコードページのための型の不一致または無効な文字)

CREATE TABLE BillTexts 
(
    SessionNum INT, 
    Name VARCHAR(200), 
    Part INT, 
    BillText VARCHAR(MAX) 
) 

ここで私はバルクそれを挿入に使用していたコードです。私はファンキーなデリミタを使用して、billtextの列の中にコンフリクト(コンマ、改行)がないことを確認しました。

BULK INSERT BillTexts 
FROM texts.csv 
WITH (
    DATAFILETYPE = 'char', 
    FIELDTERMINATOR = '¬', 
    ROWTERMINATOR = '[]{}\r\n' 
) 

ここは、私のテキストファイルの最初の数行です。私はエラーを取得する(10を介してライン1を含む)すべてのラインで

112¬hconres1¬1¬"A whole bunch of text"[]{} 
112¬hconres1¬2¬"Another whole bunch of text"[]{} 

行1のためのバルクロードデータ変換エラー(指定されたコードページの型の不一致または無効な文字)、カラム1( SessionNum)

バルクロードデータ変換エラー(型の不一致または行2、列1に指定されたコードページには無効な文字 )(SessionNum)

正直言って、なぜそれが挿入に失敗したのか分かりません。私が知っている限り、これはテーブルにこのデータを得ることができる唯一の方法です(たくさんあります)。

+1

'¬'文字はおそらく' tab'の表現です。代わりに '\ t'を試してください。 –

+0

私はその区切り文字で軽く試してみるよ、ありがとう – Shakespeare

答えて

2

私は答えはありませんが、私は攻撃の行を持っています。小さな問題に分解してください。

たとえば、5行のデータしか含まない一連のデータから始めます。それでも失敗した場合は、1列の5行に分割します。これにより、行の区切り文字がテストされます。次に、2番目の列を再度追加して、列区切り文字をテストします。次に、「blob」列以外のすべてを追加してテストし、blobを再度追加します。おそらく、blobを単一列のデータセットとしてロードします。

上記のすべてのテストテーブルを作成する必要があります。

複数の視点から問題を見ると、何が起こっているのかを絞り込むことができます。 (ファイルはダブルバイトではなくシングルバイトです)

+0

多くのありがとう。多くのトラブルシューティングの後で、それはエンコーディングエラーであることが判明しました。 – Shakespeare

関連する問題