В настоящее время я пытаюсь использовать pyodbc для вставки данных из CSV в базу данных Azure SQL Server. Я нашел большую часть этого синтаксиса в Stack Overflow, но по какой-то причине я продолжаю получать одну из двух разных ошибок.Python PYDOBC Вставить в базу данных SQL Server с параметрами
1) Всякий раз, когда я использую следующий код, я получаю сообщение об ошибке «SQL содержит 0 параметров маркеров, но 7 параметров были предоставлены».
import pyodbc
import csv
cnxn = pyodbc.connect('driver', user='username', password='password', database='database')
cnxn.autocommit = True
cursor = cnxn.cursor()
csvfile = open('CSV File')
csv_data = csv.reader(csvfile)
SQL="insert into table([Col1],[Col2],[Col3],[Col4],[Col5],[Col6],[Col7]) values ('?','?','?','?','?','?','?')"
for row in csv_data:
cursor.execute(SQL, row)
time.sleep(1)
cnxn.commit()
cnxn.close()
2) Для того, чтобы избавиться от этой ошибки, я определяю маркеры параметров, добавив «=?» для каждого столбца в инструкции insert (см. код ниже), однако это приводит к следующей ошибке: ProgrammingError: («42000» [42000] [Microsoft] [драйвер SQL Server ODBC] [SQL Server] Неверный синтаксис рядом с ' = ').
import pyodbc
import csv
cnxn = pyodbc.connect('driver', user='username', password='password', database='database')
cnxn.autocommit = True
cursor = cnxn.cursor()
csvfile = open('CSV File')
csv_data = csv.reader(csvfile)
SQL="insert into table([Col1]=?,[Col2]=?,[Col3]=?,[Col4]=?,[Col5]=?,[Col6]=?,[Col7]=?) values ('?','?','?','?','?','?','?')"
for row in csv_data:
cursor.execute(SQL, row)
time.sleep(1)
cnxn.commit()
cnxn.close()
Это главная ошибка я имеющий проблемы с, я искал по всему переполнению стека и не могу показаться, чтобы найти решение. Я знаю, что эта ошибка, вероятно, очень тривиально, однако я я новичок в Python и был бы весьма признателен за любые советы или помощь.
удивительный, это сработало спасибо! – ls101