Ниже приведен небольшой пример моего dataframePYODBC курсор, чтобы обновить таблицу в базе данных SQL
In [121]: df
Out[121]:
TXN_KEY SEND_AGENT PAY_AGENT
0 13273870 ANO080012 API352676
1 13274676 AUK359401 API352676
2 13274871 ACL000105 API352676
3 13275398 AED420319 API352676
4 13278566 ARA030210 API352676
5 13278955 AYM003098 API352676
6 13280334 AJ5020114 API352676
7 13280512 A11171047 API352676
8 13281278 AOG010045 API352676
9 13282118 AMX334165 API352676
Я пытаюсь использовать курсор в pyodbc обновить «результат» таблицы в SQL сервера базы данных со значениями dataframe
cursor.execute("Update result set Pay_Agent = df['PAY_AGENT'][0] where Send_Agent = df['SEND_AGENT'][0]")
Я получаю ниже ошибки:
ProgrammingError: ('42000', "[42000] [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ''PAY_AGENT''. (102) (SQLExecDirectW)")
Но я, убедившись, что типы данных правильно согласующее d в моей инструкции обновления.
In [126]: type(df['PAY_AGENT'][0])
Out[126]: str
In [127]: type(df['SEND_AGENT'][0])
Out[127]: str
Любые идеи оцениваются.
Используйте параметры для передачи значений 'df' на SQL Server, вместо того, чтобы вставлять их в инструкцию обновления. См. Мой ответ [здесь] (http://stackoverflow.com/a/9521382/366335) для получения дополнительной информации - он ссылается на запрос выбора, но шаги для одного обновления одинаковы. – Bryan
@Bryan с трудом следит за тем, где именно в вашем решении используются параметры, используемые для перехода к df. Можете ли вы указать, как это сделать в моем примере? –