【发布时间】:2014-01-21 12:16:15
【问题描述】:
我正在尝试使用 python 将 csv 文件写入 SQL Server 数据库中的表中。传递参数时我遇到错误,但是手动执行时我没有遇到任何错误。这是我正在执行的代码。
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 Driver][SQL Server]字符串或二进制数据将被截断。(8152) (SQLExecDirectW); [01000] [Microsoft] [ODBC SQL Server Driver][SQL Server]语句已终止。(3621)')
但是,当我手动插入值时。效果很好
cur.execute("INSERT INTO MyTable(Col1,Col2,Col3,Col4) VALUES (?,?,?,?)",'A','B','C','D')
我已确保 TABLE 在数据库中,数据类型与我传递的数据一致。连接和光标也正确。行的数据类型是“列表”
【问题讨论】:
-
您的 csv 文件是否在第一行包含列名?
标签: python sql-server csv pyodbc