Using BCP to import data to SQL Server while preserving accents, Asian characters, etc

余生颓废 提交于 2019-12-12 02:58:40

问题


I'm trying to import a PostgreSQL dump of data into SQL Server using bcp. I've written a Python script to switches delimiters into '^' and eliminate other bad formatting, but I cannot find the correct switches to preserve unicode formatting for the strings when importing into SQL Server.

In Python, if I print out the lines that are causing me trouble, the row looks like this with the csv module:

['12', '\xe4\xb8\x89\xe5\x8e\x9f \xe3\x81\x95\xe3\x81\xa8\xe5\xbf\x97']

The database table only has 2 columns: one integer, one varchar.

My statement (simplified) for creating the table is only:

CREATE TABLE [dbo].[example](
    [ID] [int] NOT NULL,
    [Comment] [nvarchar](max)
    )

And to run bcp, I'm using this line:

c:\>bcp dbo.example in fileinput -S servername -T -t^^ -c

It successfully imports about a million rows, but all of my accented characters are broken.

For example, "Böhm, Rüdiger" is turned into "B+¦hm, R++diger". Does anyone have experience with how to properly set switches or other hints with bcp?

Edit: varchar switched to nvarchar, but this does not fix the issue. This output in Python (reading with CSV module):

['62', 'B\xc3\xb6hm, R\xc3\xbcdiger']

is displayed as this in SSMS from the destination DB (delimiters matched for consistency):

select * from dbo.example where id = 62
62;"B├╢hm, R├╝diger"

where in pgAdmin, using the original DB, I have this:

62;"Böhm, Rüdiger"

回答1:


You may need to modify your BCP command to support wide character sets (note the use of -w instead of -c switch)

bcp dbo.example in fileinput -S servername -T -t^^ -w

BCP documentation reference

See also http://msdn.microsoft.com/en-us/library/ms188289.aspx




回答2:


If you need to preserve unicode change varchar to nvarchar...



来源:https://stackoverflow.com/questions/9220450/using-bcp-to-import-data-to-sql-server-while-preserving-accents-asian-character

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!