Я пытаюсь записать файл csv в таблицу в базе данных SQL Server с помощью python. Я сталкиваюсь с ошибками, когда передаю параметры, но я не сталкиваюсь с ошибками, когда делаю это вручную. Вот код, который я выполняю.
cur=cnxn.cursor() # Get the cursor
csv_data = csv.reader(file(Samplefile.csv')) # Read the csv
for rows in csv_data: # Iterate through csv
cur.execute("INSERT INTO MyTable(Col1,Col2,Col3,Col4) VALUES (?,?,?,?)",rows)
cnxn.commit()
Ошибка:
pyodbc.DataError: ('22001', '[22001] [Microsoft] [Драйвер ODBC SQL Server] [SQL Server] Строка или двоичные данные будут усечены. (8152) (SQLExecDirectW); [01000] [Microsoft] [ODBC SQL Драйвер сервера] [SQL Server] Оператор прерван. (3621) ')
Однако когда я вставляю значения вручную. Отлично работает
cur.execute("INSERT INTO MyTable(Col1,Col2,Col3,Col4) VALUES (?,?,?,?)",'A','B','C','D')
Я убедился, что ТАБЛИЦА есть в базе данных, типы данных соответствуют данным, которые я передаю. Подключение и курсор тоже правильные. Тип данных строк - список