【问题标题】:pushing complete python list to oracle db using cx_Oracle使用 cx_Oracle 将完整的 python 列表推送到 oracle db
【发布时间】:2018-03-16 07:38:21
【问题描述】:

我有两个列表,每个列表有 100 个元素(比如class_db_colclass_id_col)。我想将 class_db_col 列表中的所有项目推送到 oracle DB 中的一列(比如 class_result)。

statement = 'update TRANSFERS_TXN_MT set CLASS_RESULT = :1 where id= :2'
for i in range(len(class_db_col)):
     cursor.execute(statement,(class_id_col[i],class_db_col[i]))
conn.commit() 

收到此错误

ORA-01484: 数组只能绑定到 PL/SQL 语句

谁能帮我解决这个问题?

【问题讨论】:

  • 您使用的是哪个版本的 cx_Oracle?
  • @APC cx-Oracle==6.0.2

标签: python database oracle plsql cx-oracle


【解决方案1】:

如果你有一个元组数组,你可以使用 cursor.executemany() 代替。看起来您有两个并行数组,您可以通过以下代码创建元组:

数据 = 列表(zip(class_id_col, class_db_col))

这应该会产生一个如下所示的数组:

[(1, 4), (2, 6), ..., (8, 15)]

那么你就可以使用这个代码了:

cursor.executemany("update TRANSFERS_TXN_MT set CLASS_RESULT = :1 where id = :2", data)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 2010-09-19
    • 2019-05-02
    • 1970-01-01
    • 2019-10-09
    • 2021-12-22
    • 2013-11-08
    相关资源
    最近更新 更多