python-oracle插入数据类型不匹配

2024-06-26 00:05:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Oracle表中插入一个字典,但由于数据不匹配错误而失败。我想知道我使用的是正确的语法。在

In [19]:selrow
Out[19]:[{'CUSTOMER_NM': 'ABC INC',
  'CUSTOMER_NO': 'A0050129',
  'CUSTOMER_SK': 926,
  'EFFECTIVE_DT': datetime.datetime(2015, 10, 2, 0, 0)}]

以下是我的插入声明:

^{pr2}$

我得到了以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-30-eefac6fb0aa7> in <module>()
      2 #query = 'INSERT INTO DIM_CUST (%s) VALUES (%s)', (selrow[0].keys(), selrow[0].values())
      3 #rint query
----> 4 cur.execute('INSERT INTO DIM_CUST (%s) VALUES (%s)', (selrow[0].keys(), selrow[0].values()))
      5 db.commit()

TypeError: expecting numeric data

我的insert语法正确吗?我使用字典键作为列名,字典值作为要输入到表中的值。在

问我可能遗漏的任何细节。谢谢你能提供的任何帮助。在


Tags: datetime字典错误语法customerkeysqueryinsert
1条回答
网友
1楼 · 发布于 2024-06-26 00:05:17

谢谢卢卡斯和哈拉普拉萨德。根据你的建议,我想到了这个:

cols = ', '.join(selrow[0].keys())
vals = ':'+', :'.join(selrow[0].keys())
sql='INSERT INTO DIM_CUST (%s) VALUES (%s)' % (cols, vals)
cur.execute(sql, selrow[0])
db.commit()

它起作用了!恳求你的帮助。在

相关问题 更多 >