我正在尝试使用pyodbc将数据帧插入到Oracle数据库中。我的代码如下所示:
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()
我尝试输入的数据帧的一行是:
['0010930795', '231', 1, 1, nan, nan, Timestamp('2019-06-07 09:41:03')]
Access 中所示的列的数据类型包括:
AUFTRAGNR:
短文本TYPNR:
短文本MENGE:
数字CNT:
数字LL_NR:
短文本LL_NR2:
短文本DATE:
日期/时间
我得到的错误是:
错误:("HY000"、"驱动程序未提供错误!
由于错误消息不是很具有描述性,并且我在代码中没有看到任何明显的错误,因此我真的不知道如何处理这个问题。此错误的可能原因是什么?
任何帮助将不胜感激!
我最终弄清楚了问题所在。数据库中Number
定义的数据类型是指浮点数而不是整数,因此以下输入将起作用:
['0010930795', '231', 1.0, 1.0, nan, nan, Timestamp('2019-06-07 09:41:03')]