我有这段代码来使用cx_oracle将数据插入到表中,但出现了一些错误
我的数据如下所示:
[['BOB', 20190619, 118.16, 118.38, 116.05, 117.8, 'No', 117.8, 117.8, 117.8, 0.0, 0.0, 0.0, nan, nan, nan, nan]
我对代码的尝试如下:
sql='INSERT INTO stockstats VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16)'
n = 0
for i in df.iterrows():
cursor_1.execute(sql,df_list[n])
n += 1
cursor_1.execute(sql,df_list[n])
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
我也试过这个,也遇到了同样的问题:
sql = 'INSERT INTO stockstats VALUES(:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15,:16)'
cursor_1.executemany(sql, df.values.tolist())
cursor_1.executemany(sql, df.values.tolist())
cx_Oracle.DatabaseError: ORA-01036: illegal variable name/number
我想知道我做错了什么
任何hep都很好
您可以研究以下几种可能性:
cursor.prepare(sql)
后跟cursor.bindnames()
,检查cx_Oracle认为存在的绑定名称列表这两种检查都应该有助于发现问题的根源,无论是输入数据输入错误还是“错误”
不清楚数据帧
df
中的内容是列还是行。即使将它们视为列,逗号分隔元素的数目(<强> 17 < /强>)不符合^ {< CD3}}字符串的{{CD2}}列表中绑定变量(<强> 16 < /强>)的数量。将这些逗号分隔的元素视为列,从数据帧中定期插入,根据表的列数固定列数,更喜欢使用df。通过使用sqlalchemy连接到sql。在插入过程中创建引擎,例如
针对由
NaN
值引起的问题相关问题 更多 >
编程相关推荐