Я пытаюсь импортировать дамп данных PostgreSQL в SQL Server, используя bcp.Я написал сценарий Python для переключения разделителей на '^' и устранения других неправильных форматов, но не могу найти правильные параметры, чтобы сохранить форматирование Юникода для строк при импорте в SQL Server.
В Python, еслиЯ распечатываю строки, которые вызывают у меня проблемы, строка выглядит так с модулем csv:
['12', '\xe4\xb8\x89\xe5\x8e\x9f \xe3\x81\x95\xe3\x81\xa8\xe5\xbf\x97']
Таблица базы данных имеет только 2 столбца: один integer
, один varchar
.
Мое утверждение (упрощенное) для создания таблицы только:
CREATE TABLE [dbo].[example](
[ID] [int] NOT NULL,
[Comment] [nvarchar](max)
)
И чтобы запустить bcp, я использую эту строку:
c:\>bcp dbo.example in fileinput -S servername -T -t^^ -c
Это успешноимпортирует около миллиона строк, но все мои акцентированные символы разбиты.
Например, «Böhm, Rüdiger» превращается в «B + ¦hm, R ++ diger».У кого-нибудь есть опыт, как правильно установить переключатели или другие подсказки с помощью bcp?
Редактировать : varchar
переключен на nvarchar
, но это не решает проблему.Эти выходные данные в Python (чтение с модулем CSV):
['62', 'B\xc3\xb6hm, R\xc3\xbcdiger']
отображается как это в SSMS из целевой БД (разделители соответствуют согласованности):
select * from dbo.example where id = 62
62;"B├╢hm, R├╝diger"
где в pgAdmin,используя оригинальную БД, у меня это:
62;"Böhm, Rüdiger"