2016-07-05 20 views
0

ファイルのレコードセットに対してBCPを実行しようとしています。 ASCII文字を拡張したレコードでは失敗します。拡張ASCII文字を持つフィールドをインポートする際にBCPの問題が発生する

私はしかし、それは働いていない、-C RAWようなコード・ページのオプションを使用するコマンドに

bcp db1.table1 in "C:\file.DAT" -T -C ACP -SMyServer\SQL2012Instance -r"\n" -t"," -b100000 -c 

を試してみました。

このレコードについては、以下のエラーが発生しています。この場合、書式を指定するのに助けてください。

SQLState = 22001, NativeError = 0 Error = [Microsoft][SQL Server Native Client 10.0]String data, right truncation 

この場合、フォーマットを指定してください。

+0

この問題は、ドライバの古いODBCドライバとの対話に使用します。ODBCドライバの更新またはssisの使用 –

答えて

1

問題が確認され、BCPの入力ファイルがBCPユーティリティでサポートされているエンコーディングではないUTF-8形式であるという事実を更新したいと考えています。

したがって、UTF-8ではなくLatin1Encoding(C#で)でファイルを用意しました。これは、1バイトで拡張ASCII文字を保持することができます。 次に、私は、BCPがサポートしているラテン1エンコーディングのコードページ1252を受け入れるようにBCPコマンドを変更しました。以下の変更されたコマンドを参照してください。

bcp db1.table1 in "C:\file.DAT" -T -C 1252 -SMyServer\SQL2012Instance -r"\n" -t"," -b100000 -c 

また、Unicode文字セットでファイルを準備することでこれを解決する方法もあります。コマンドで-cオプションの代わりに-wオプションを使用できます。

関連する問題