【发布时间】:2019-12-27 04:46:25
【问题描述】:
我正在尝试将数据从 CSV(或 DataFrame)插入 MS SQL Server。 表已经创建好了,我使用 pyodbc 在 SQL 中创建了列。
我正在尝试使用 DataFrame 中的一列填充表中的第一列,但出现此错误:
错误: ('07002', '[07002] [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误 (0) (SQLExecDirectW)')
我尝试添加不同的列以查看该特定列是否存在问题,但我得到了相同的错误。 (列中没有空值。)
conn = pyodbc.connect("Driver={SQL Server};"
"Server=natsqldevap2ncr\ins2;"
"Database=ECDWDEV;"
"Trusted_Connection=yes;")
for i in df.iloc[:,0]:
insert_query1 = """INSERT INTO TABLE_NAME(COLUMN_NAME)
VALUES
(?)"""
cursor = conn.cursor()
result = cursor.execute(insert_query1)
conn.commit()
期望列 (df.iloc[:,0]) 中的所有值都插入到 SQL 表“TABLE_NAME”的“COLUMN_NAME”列中。
得到:
错误: ('07002', '[07002] [Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误 (0) (SQLExecDirectW)')
【问题讨论】:
-
将数据从 PYODBC 推送到 SQL 是一个非常糟糕的主意。我会完全找到另一个解决方案。例如保存 CSV 并手动上传,或一些来自 Python 的高效批量上传方法。
-
您没有对
i执行任何操作,您只是在运行insert_query1的次数与df中的行数一样多。你打算这样做吗? -
@FatihAkici 为什么这是个坏主意?哪种批量上传方式更好?
-
@it's-yer-boy-chet 理想情况下我会一次性加载整个专栏,最好的方法是什么?