Преобразовать строковый столбец данных в Unicode для записи в базу данных SQL Server столбец nvarchar - PullRequest
0 голосов
/ 16 мая 2019

У меня есть неанглийские символы в одном из столбцов кадра данных, чистые строки, ранее извлеченные из чужой базы данных SQL Server. Я хочу вставить эти столбцы в мою таблицу SQL Server, в которой есть столбец NVARCHAR(MAX). Каждый раз, когда я пытался, я получал там вопросительные знаки.

Я думал, что решением может быть преобразование строкового столбца dataframe в строку Unicode, но я не совсем понял, как это сделать.

В настоящее время я не делаю никаких изменений в строковом столбце и сразу пытался вставить в SQL

data = ncon.list_tuples(value, value.columns.tolist())
query = "INSERT INTO ipm03_6010_85.dbo.Sales_SS VALUES{}".format(data)

, чтобы избежать выбора данных в python, также пытался соединиться напрямую на SQL Server, но с этим не получилось

SELECT DISTINCT product_id, code, sum(quantity) FROM dbo.Sales_SS GROUP BY product_id, code ORDER BY product_id ASC 
LEFT JOIN (SELECT id, name FROM book.Products) as prods ON prods.id = product_id

также пытался

df['name'] = df['name'].astype(str).unicode_string.encode(encoding='UTF-8',errors='strict') couldnt make it work

Я хочу, чтобы вопросительные знаки исчезли, и все было сохранено правильно

1 Ответ

0 голосов
/ 16 мая 2019

Панагиотис Канавос не может отблагодарить вас достаточно, это было слишком сложно, пока вы не указали правильное направление, и строка ниже не решила буквально все, и это также кажется намного быстрее.

query = "INSERT INTO ipm03_6010_85.dbo.Sales_SS (general_id, date, product_id, quantity, price, code, name, description) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"
cursor.executemany(query, value.values.tolist())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...