我有两个列表,每个列表包含100个元素(例如class_db_col
和class_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语句
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
如果你有一个元组数组,你可以使用cursor.executemany()代替。看起来您有两个并行数组,您可以通过此代码创建元组:
data = list(zip(class_id_col,class_db_col))
这应该会产生一个如下所示的数组:
[(1,4),(2,6),...,(8,15)]
然后你可以使用这段代码:
cursor.executemany("更新TRANSFERS_TXN_MT设置CLASS_RESULT =:1,其中id =:2",数据)