使用pyodbc将数据帧插入Oracle Datebase:错误:(“ HY000”,“驱动程序未提供错误!”)

时间:2019-06-07 09:02:08

标签: sql oracle pandas insert pyodbc

我正在尝试使用pyodbc将数据帧插入Oracle数据库。我的代码如下:

Pokedex release

我要输入的数据框的一行是:

pyodbc.pooling = False conn_str = ( r'DRIVER={Oracle in OraClient12Home1};' r'UID=***;' r'PWD=***;' ... ...) conn = pyodbc.connect(conn_str, autocommit=True) curs = conn.cursor() curs.executemany('INSERT INTO TABLE.NAME(AUFTRAGNR, TYPNR, MENGE, CNT, LL_NR, LL_NR2, DATE) VALUES (?, ?, ?, ?, ?, ?, ?)', my_df.values.tolist()) curs.commit() curs.close()

Access中显示的列的数据类型为:

['0010930795', '231', 1, 1, nan, nan, Timestamp('2019-06-07 09:41:03')]短文本
AUFTRAGNR:短文本
TYPNR:
MENGE:
CNT:短文本
LL_NR:短文本
LL_NR2:日期/时间

我得到的错误是:

错误:(“ HY000”,“驱动程序未提供错误!”)

由于错误消息不是很具描述性,并且我的代码中没有看到任何明显的错误,因此我真的不知道该如何处理。该错误的可能原因是什么?

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我最终确实弄清楚了问题所在。数据库中定义的数据类型Number指的是浮点数而不是整数,因此以下输入将起作用:

['0010930795', '231', 1.0, 1.0, nan, nan, Timestamp('2019-06-07 09:41:03')]