Мне нужно создать скрипт python для переноса данных с Microsoft SQL Server на PostgreSql. Проблема возникает с символами без ascii. В Microsoft SQL Server у меня есть таблица с именем table1 с полем типа NVARCHAR хранящего персонажемМиграция из ms sql в postgres nonascii символов ошибка python
â
Я использую pyodbc для получения символа. Моя строка соединения
"ms_sql":{
"DRIVER":"{SQL Server Native Client 11.0}",
"SERVER":"(localdb)\\v11.0",
"DATABASE":"sheshant_database",
"Trusted_Connection":"yes",
"charset":"SQL_Latin1_General_CP1_CI_AS"
Сопоставление в MS SQL является SQL_Latin1_General_CP1_CI_AS. Когда я извлечения данных в Python, это дает
u'\xe2'
Затем я подключаюсь к Postgres через psycopg2 и это мое соединение строковый параметр
"postgres":{
"host":"127.0.0.1",
"user":"postgres",
"password":"regards",
"database":"cmots",
"port":"5432"
В PostgreSQL, кодировка клиента и сервера «latin1» и 'utf8' соответственно. Я использовал команду в psycopg2
'insert into table1 values ('+ a +');' // here a is a unicode and a = u'\xe2'
. Но данные, хранящиеся в PostgreSQL, равны
Γ
Куда пошло не так?
Если 'pyodbc.version' не возвращает '4.0.6' обновите pyodbc до последней версии. Было несколько недавних изменений, которые могут повлиять на ваши результаты. –
Также попробуйте 'cursor.execute ('insert into values1 values (% s)', (a,))' –