2016-07-05 51 views
0

我試圖在文件一組記錄做一個BCP。它在擴展ASCII字符的記錄中失敗。BCP問題,具有擴展ASCII字符全

我試着命令

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

我使用的代碼頁選項爲-C RAW,但它並沒有解決。

該記錄,我收到下面的錯誤。在這種情況下,您能否幫助指定格式?

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

請您幫忙指出在這種情況下指定的格式。

+0

這個問題,我們用它來面對司機老ODBC驅動程序..更新ODBC驅動程序或使用SSIS ... –

回答

1

識別出問題,我想更新的事實是,對於BCP輸入文件是UTF-8格式,這是不是BCP實用工具支持的編碼。

因此,我已經準備在Latin1Encoding該文件(在C#),而不是UTF-8。它仍然可以容納1個字節的擴展ascii字符。 然後,我已經改變了BCP命令接受代碼頁1252是拉丁1個編碼,這BCP支持,它的工作。請參閱下面的改變的命令。

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

還有通過製備在Unicode字符集的文件此替代的解決方案,並且可以使用-w選項代替-c在該命令。