使用cx\U oracle将完整的python列表推送到oracle数据库

使用cx\U oracle将完整的python列表推送到oracle数据库,python,database,oracle,plsql,cx-oracle,Python,Database,Oracle,Plsql,Cx Oracle,我有两个列表,每个列表中有100个元素(比如class\u db\u col,和class\u id\u col)。我想将class\u db\u col列表中的所有项目推送到oracle db中的一列(比如class\u result) statement = 'update TRANSFERS_TXN_MT set CLASS_RESULT = :1 where id= :2' for i in range(len(class_db_col)): cursor.execute(st

我有两个列表,每个列表中有100个元素(比如
class\u db\u col
,和
class\u id\u col
)。我想将
class\u db\u col
列表中的所有项目推送到oracle db中的一列(比如
class\u 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语句


有人能帮我解决这个问题吗?

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

数据=列表(zip(类id列、类db列))

这将生成一个如下所示的数组:

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

然后您可以使用以下代码:


cursor.executemany(“更新传输\u TXN\u MT set CLASS\u RESULT=:1,其中id=:2”,data)

您使用的是哪一版本的cx\u Oracle?@APC cx Oracle==6.0.2